使用时刻js将12小时(上午/下午)字符串转换为24日期对象

时间:2014-11-06 15:25:10

标签: javascript momentjs

我有一个时间戳产生的输出,给出了12小时的格式。

Eg : "1:45 AM (or) "12:15 PM" as **string**

有没有办法使用时刻js回溯日期对象将此字符串格式解析为24小时?

10 个答案:

答案 0 :(得分:85)

请参阅moment js parse function

的文档

JSFiddle

var dt = moment("12:15 AM", ["h:mm A"]).format("HH:mm");

答案 1 :(得分:8)

我知道这个答案不是针对这个问题(实际上是针对相反的情况),但我会说它是完整的,如果有人(像我一样)正在寻找它。
如果您想要从24 Hour system转换为12 Hour system,则可以使用以下

return moment("13", ["HH"]).format("hh A");

前面的代码将生成结果1 PM

答案 2 :(得分:1)

在完整日历中以12小时格式显示时间,如01:00 PM,我使用以下格式 - timeFormat:' hh:mm A'。 " TIMEFORMAT"是fullcalender事件的财产。

相同格式' hh:mm A'我们可以使用momentjs格式化datetime对象。

答案 3 :(得分:1)

只是一点对话 “下午2点”到“ 14.00”

const number = moment("02:00 PM", ["h:mm A"]).format("HH:mm");
cosole.log(number); // "14.00"

从“ 14.00”到“下午2点”

const number = moment("14.00", ["HH.mm"]).format("hh:mm a");
cosole.log(number); // "02:00 pm"

答案 4 :(得分:0)

moment("145","hmm").format("HH:mm");

这将导致01:45

答案 5 :(得分:0)

/ *     *完成下面的timeConversion函数。     * /

function timeConversion(s) {
    let time = s.split(':')
    var min = time[1]
    if (s.match('PM')) {
        var hour = 12 + parseInt(time[0], 10)
        hour = hour == 24 ? 12 : hour;
        var sec = time[2].replace('PM', '')
    } else {
        var hour = time[0]==12?'00':time[0]
        var sec = time[2].replace('AM', '')
    }
    if (hour < 10) hour = hour;
    let newTime = hour + ':' + min + ':' + sec
    return newTime
}

答案 6 :(得分:0)

var today = new Date();
let options = {  
    hour: "2-digit", minute: "2-digit"  
};  
console.log(today.toLocaleTimeString("en-us", options));

答案 7 :(得分:0)

使用HH:mm会将12小时格式转换为24小时,而使用hh:mm会将12小时格式转换为

moment("12:15 PM").format("HH:mm")

答案 8 :(得分:0)

以下是使用时间Date设置String对象的时间的方法。

const date = new Date('1/1/21');
const pm = '2:30 PM';
const am = '11:00 AM';
const noon = '12:00 PM';
const midnight = '12:00 AM';

const mergeDateTime = (date, time) => {
  const parsedTime = moment(time, ['h:mm A']);
  const merged = moment(date).set({
    hours: parsedTime.get('hours'),
    minutes: parsedTime.get('minutes')
  });
  
  return merged.toDate();
};

const resultsList = document.querySelector('#results');

const inputs = [pm, am, noon, midnight];

inputs.forEach((input) => {
  const li = document.createElement('li');
  li.innerText = `${input} ➡ ${mergeDateTime(date, input)}`;
  resultsList.appendChild(li);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

<h3>Results</h3>
<ul id=results />

答案 9 :(得分:0)

你可以使用dayjs

return dayjs(date as string).format('DD/MM/YYYY HH:mm')

你将有:

03/03/2021 16:36

更多信息,您可以参考https://day.js.org/docs/en/display/format