📌  相关文章
📜  将 hh:mm am pm 中的字符串转换为日期 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:09:31.434000             🧑  作者: Mango

将 hh:mm am/pm 中的字符串转换为日期 - JavaScript

在JavaScript中,我们可以使用内置的Date对象和一些方法来将给定的时间字符串转换为日期对象。

1. 解析时间字符串

我们可以使用Date.parse()方法来解析时间字符串。但是,它只能解析使用ISO格式的字符串。因此,我们需要将时间字符串转换为ISO格式。

const timeString = '10:30 pm';
const isoTimeString = new Date(`1970-01-01T${timeString}`).toISOString();
console.log(isoTimeString); // "1970-01-01T22:30:00.000Z"

上面的代码中,我们将给定的时间字符串10:30 pm与一个固定的日期字符串1970-01-01T组合,并将其作为参数传递给Date构造函数。然后,我们使用toISOString()方法将日期对象转换为ISO格式的日期字符串。

2. 创建日期对象

使用new Date()构造函数,我们可以将该ISO格式的字符串转换为日期对象。

const date = new Date(isoTimeString);
console.log(date); // Date { Sat Jan 01 1970 22:30:00 GMT+0800 (中国标准时间) }
3. 格式化日期对象

我们可以使用内置的toLocaleTimeString()方法将日期对象格式化为小时和分钟。

const formattedTime = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
console.log(formattedTime); // "10:30 PM"
完整的转换函数
function convertTimeStringToDate(timeString) {
  const isoTimeString = new Date(`1970-01-01T${timeString}`).toISOString();
  const date = new Date(isoTimeString);
  const formattedTime = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
  return formattedTime;
}

const time = '10:30 pm';
const date = convertTimeStringToDate(time);
console.log(date); // "10:30 PM"

以上是将hh:mm am/pm格式的时间字符串转换为日期对象的方法。现在,您可以将这个函数添加到您的JavaScript项目中,方便地将时间字符串转换为日期对象。