.getDate()和.getMinutes在Chrome和firefox中返回不同的值

时间:2017-02-24 12:32:26

标签: javascript jquery html

var getFormattedDateText = function (dateString) {
        var date = new Date(dateString);
        var hours, am_pm, minutes, time;

 //Code for formatting the time starts
        hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();
        am_pm = date.getHours() >= 12 ? "PM" : "AM";
        hours = hours < 10 ? "0" + hours : hours;
        minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
        time = hours + ":" + minutes + " " + am_pm;
//Code for formatting the time ends

        var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
        console.log(date.getHours() + "=" + date.getMinutes());

        return (monthNames[date.getMonth()] + ' ' + date.getDate() +' at ' + time+' Local Time');

    };

此处日期字符串为2017-03-02T09:00:00,

但在Chrome中,它提供 date.gethours()= 14 date.getMinutes = 30

在Firefox中 date.gethours()= 09 date.getMinutes = 00

4 个答案:

答案 0 :(得分:0)

我认为这与将日期注入函数的方式有关。我做了以下操作,并在Chrome和Firefox中获得了相同的结果:

getFormattedDateText('2017-03-02 09:00:00');

所以我删除了&#39; T&#39;来自你的dateString。浏览器都以不同的方式解释它。当我删除时,我在浏览器中得到以下内容:

console.log(date.getHours() + "=" + date.getMinutes());
logged - '9=0'

答案 1 :(得分:0)

您的指定日期格式不正确。正确的日期字符串将在chrome和firefox中返回相同的值。

检查link格式是否正确。

答案 2 :(得分:0)

通过此修改解决了我的问题

var date = new Date(dateString + 'Z');

答案 3 :(得分:-1)

没有时区的日期由chrome&amp; amp;火狐。

e.g。在你的日期字符串中添加一个时区

getFormattedDateText('2017-03-02T09:00:00Z'); // UTC timezone

选中此Incorrect Javascript Date in Chrome vs Firefox