【问题标题】:Format date in javascript AM and PM在 javascript AM 和 PM 中格式化日期
【发布时间】:2017-04-06 18:53:26
【问题描述】:

我有这个日期 20/4/2016;4:23:00;PM

但我想像这样输入 DD/MM/YYYY HH:mm:ss 没有 AM 或 PM

例如 20/04/2016 16:23:00

提前致谢 卡洛斯·维埃拉

【问题讨论】:

  • 只需重新格式化字符串。

标签: javascript date format


【解决方案1】:

在 javascript 中,您的情况支持的格式是“MM/DD/YYYY hh:mm:ss AM”或“MM/DD/YYYY hh:mm:ss PM”。 如果您将提供“04/20/2016 11:00:06 PM”之类的输入,那么您将获得日期格式“Fri Mar 04 2016 23:00:06 GMT+0530 (IST)”的输出,您可以将其保存. 您可以在此处放置“04/20/2016 11:00:06Z PM”标记并根据 UTC 获取结果。 供参考https://www.w3schools.com/js/js_date_formats.asp

【讨论】:

  • ECMA-262 中没有提到提到的“支持”格式。请不要参考 w3schools,ECMA-262 和 MDN 是首选。
【解决方案2】:

一种方法是重新格式化字符串并将时间部分转换为 24 小时制,例如:

function reformatDate(s) {
  var b = s.split(';');
  var t = b[1].split(':');
  var h = +t[0];
  h  = h%12 + (/pm/i.test(b[2])? 12 : 0);
  return b[0] + ' ' + h + ':' + t[1] + ':' + t[2];
}

console.log(reformatDate('20/4/2016;4:23:00;PM')); // 20/4/2016 16:23:00

这避免了将整个字符串解析为日期然后重新格式化的变幻莫测。如果这是您想要做的,这里已经有很多关于解析和格式化日期的问题:

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2016-02-25
    • 2019-01-18
    • 1970-01-01
    相关资源
    最近更新 更多