json日期转换在EST和PST中显示不同

时间:2014-01-27 18:20:03

标签: javascript json

我使用javascript函数转换日期{date =\/Date(1293034567877)\/}

  function getDateFromJSON(date) {
            var newdate = new Date(parseInt(date.replace(/(^.*\()|([+-].*$)/g, '')));
        retdate = (newdate.getMonth() + 1) + "/" + newdate.getDate() + "/" + newdate.getFullYear();
            var retdate;

例如:如果收到的日期为7/22/2008 12:00:00 PM,则会在PSTEST中正确显示,但收到的日期为7/22/2008 12:00:00 AM,然后显示为7/21/2008 PST用户。

我只需要显示日期部分任何建议我做错了什么

1 个答案:

答案 0 :(得分:0)

使用UTC日期功能不会更改时区。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

.getUTCDate()会为22 1216684800000获取Tue, 22 Jul 2008 00:00:00 GMT

如果您只需要当前时区日期,请使用.getDate()

您指明此日期不是“正确”,但您需要考虑所有时区的日期不一定相同。确保您存储的午夜日期为UTC或GMT0。由于EST(格林威治标准时间-5)和太平洋标准时间(格林威治标准时间-8)遵循格林威治标准时间午夜,这些时区尚未提前约会。

将我的机器设置为EST并使用1216684800000我得到21日期。

var d = new Date(1216684800000);
d.getDate();     // 21
d.getUTCDate();  // 22
d.toUTCString(); // Tue, 22 Jul 2008 00:00:00 GMT

jsfiddle