Javascript 日期时间字符串转 UTC 日期时间和 UTC 转本地日期时间

标签 javascript date datetime

我需要将字符串转换为 UTC 日期,然后将 UTC 日期转换为本地日期。

这是我的代码:

var dateStr = "9/8/2015 12:44:00 PM";
console.log(strtoUTCtoLocal(dateStr));

function strtoUTCtoLocal(dateStr)
{
    var d1 = new Date(dateStr).toUTCString();
    var d2= new Date(d1);

     return      "0" + (d2.getMonth()+1).toString().slice(-2) + "/" +
                 "0" + d2.getDate().toString().slice(-2) + "/" +
                 d2.getFullYear().toString() + " " +
                 d2.getHours().toString() + ":" + 
                 d2.getMinutes().toString();
}

最佳答案

解析日期字符串应该手动完成,因为 Date.parse 在不同浏览器中不一致。假设您的格式为 d/m/y,您可以使用以下命令将其解析为 UTC 时间:

    var s = '9/8/2015 12:44:00 PM';

    function parseDate(s) {
      var b = s.split(/\D+/);
      var ap = /pm$/i.test(s)? 12 : 0;
      return new Date(Date.UTC(b[2], b[1]-1, b[0], ((b[3]%12) + ap), b[4], b[5]));
    }

    document.write(parseDate(s));

如果您需要验证日期,则需要额外的一行代码。

请注意,默认情况下,没有时区的字符串通常会解析为本地(ES5 中使用 Date.parse 的 ISO 8601 格式字符串除外,但 ECMAScript 2015 将它们解析为本地,在 ECMAScript 2016 中更改为 UTC)。

关于Javascript 日期时间字符串转 UTC 日期时间和 UTC 转本地日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32458787/

相关文章:

javascript - 无需点击即可在 ui-router 中切换状态

javascript - 添加动态文本到 anchor 链接 URL 查询

javascript - PHP hint.css 添加新的文本行

javascript - 多个 FormControl 元素的 Angular2 updateValueAndValidity

java - Android日期,回到夏令时会不会出错?

javascript - Meteor Accounts.emailTemplates.resetPassword.html

java - 转换 UTC 时间 HH :mm:ss to Device time HH:mm:ss and adding Day saving time if available

Java - 序列化/反序列化日期时出错

java - 预计日期有月数和天数差异?

python :Select the rows for the most recent entry from multiple users