时区值不匹配1天

时间:2018-01-11 15:54:48

标签: javascript timezone

我正在处理日期时间值未正确纠正的问题。 当我将时区从东海岸改为西海岸时,问题就出现了。 现在,在我的本地主机上,我无法看到这个问题;在QA盒子上,存在问题。 我的代码出现在QA框中,但我对这个问题发生的原因感到非常难过。为什么时区在我的本地机器上显示正确,但在QA机器上显示错误的日期(落后1天)?

ex :(西海岸时区)

Input
1/6/2018 "/Date(1515225600000)/"
11/10/2018 "/Date(1515657600000)/"
10/21/2018 "/Date(1513065600000)/"

Ouput
On my machine I see the value 1/6/2018 on the QA Machine I see 1/5/2018.
On my machine I see the value 11/10/2018 on the QA Machine I see 11/9/2018.
On my machine I see the value 10/21/2018 on the QA Machine I see 10/20/2018.

任何帮助都将不胜感激。

   for (var i = 0; i < data.rows.length; i++) {
                        var dosDate = data.rows[i].DOS;
                        var convertedDosDate = Utills.DatesAndTimes.parseDateOrTodayFromServerDateTime(dosDate);
                        data.rows[i].DOS = convertedDosDate;

                        var doaDate = data.rows[i].DOA;
                        var convertedDoaDate = Utills.DatesAndTimes.parseDateOrTodayFromServerDateTime(doaDate);
                        data.rows[i].DOA = convertedDoaDate;

                    }

parseDateOrTodayFromServerDateTime: function(serverDateTime)
    {
        // TODO - replace usages with one of the other parsing methods, as appropriate; this one doesn't work in all instances

        if(serverDateTime instanceof Date)
        {
            return serverDateTime;
        }

        var parsedDate;

        try
        {
            var millisecondsRegex = /-?\d+/,
                millisecondsValue = millisecondsRegex.exec(serverDateTime),
                milliseconds = parseInt(millisecondsValue, 10);

            parsedDate = new Date(milliseconds);
        }
        catch(e)
        {
            parsedDate = new Date();
        }

        return parsedDate;
    },

0 个答案:

没有答案