如何使JS日期尊重当地时区?

时间:2014-04-02 14:35:30

标签: javascript jquery date

我有以下函数正确返回所需格式的日期,但返回的值不是关于本地时区。在这种情况下,它的4小时关闭。我需要在此函数中修改哪些内容才能根据用户位置添加正确的偏移量?

谢谢!

function date_str(seconds) {
    var dt = new Date(1970, 0, 1);
    dt.setSeconds(seconds);
    console.log(dt);
    var month = dt.getMonth() + 1;
    var date = dt.getDate();
    var year = dt.getFullYear();
    var hours = dt.getHours();
    var minutes = dt.getMinutes();
    var ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12;
    minutes = minutes < 10 ? '0' + minutes : minutes;
    return month + '/' + date + '/' + year + ', ' + hours + ':' + minutes + ' ' + ampm;
}

编辑:将unix时间传递给功能1396450616.505,转换为星期三,2014年4月2日14:56:56 GMT返回2014年4月2日下午2:56从函数本身发送。这里的时间是美国东部时间上午10:56。

1 个答案:

答案 0 :(得分:1)

假设seconds是一个unix时期(UT​​C),你应该只使用

function date_str(seconds) {
    var dt = new Date(seconds*1000);
    console.log(dt);
    …

代替。 get…()方法将尊重当地时区。如果您不想要,则应使用getUTC…()等效项。