首页 文章

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

提问于
浏览
-2

我有以下函数,正确返回所需格式的日期,但返回的值不尊重本地时区 . 在这种情况下,它的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 回答

  • 1

    假设 seconds 是一个unix时期(UTC),你应该使用

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

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

相关问题