日期格式在 Chrome 中给出的结果与其他浏览器中的结果不同

Date formating gives different results in Chrome than in other browsers?

本文关键字:结果 其他 浏览器 格式 Chrome 日期      更新时间:2023-09-26

我想以可读的格式显示时间。所以我正在使用下面的js代码。但是Chrome和IE的输出是不同的。如何更改代码以在所有浏览器上提供相同的输出?

IE 中的输出:上午 12:46

在铬中 : 6:16 am

时区是 : UTC +05:30

    var unReadableDate = "2016-01-25T00:46:00";
    var newDate = new Date(unReadableDate);
    //var timeZoneOffset = (new Date()).getTimezoneOffset();
    //newDate.setMinutes(newDate.getMinutes() - timeZoneOffset);
    alert(formatAMPM(newDate));
    //below function formats time in am and pm
    function formatAMPM(date) {
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0' + minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        return strTime;
    }

你能试着替换这个吗

var unReadableDate = "2012-06-25T00:46:00.000Z"
    var newDate = new Date(unReadableDate);
    //var timeZoneOffset = (new Date()).getTimezoneOffset();
    //newDate.setMinutes(newDate.getMinutes() - timeZoneOffset);
    alert(formatAMPM(newDate));
    //below function formats time in am and pm
    function formatAMPM(date) {
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0' + minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        return strTime;
    }

使用 Javascript Date 构造函数将 UTC 格式字符串转换为日期是不可靠的。如果你想解决日期的时区问题,你应该使用moment.js。要了解更多信息,您可以使用以下链接。

Javascript 日期问题

或者解决问题的简单方法是在日期中传递单个参数而不是完整的字符串。要了解更多信息,您可以使用以下链接

日期时间 UTC

您的问题是您的日期字符串被视为本地时间而不是被视为 UTC。

只需通过指定时区使其明确即可。改变

var unReadableDate = "2016-01-25T00:46:00";

var unReadableDate = "2016-01-25T00:46:00Z";
相关文章: