0

我从 API 获取服务器日期(包括时区)。我想将其转换为日期对象。

当我这样做时

var demo2 = new Date("THU JAN 19 15:37:56 PST 2017"); //It works!

var demo = new Date("FRI JAN 20 07:50:07 SGT 2017"); //Invalid date

为什么?如果它是 SGT,那么它不起作用,但它适用于 PST

我正在尝试将此日期传递给 dateTimePicker

    $datetimepicker.datetimepicker({
        minDate: new Date(this.serverTime),
        defaultDate: new Date(this.serverTime),
    });

如何使用 Date / MomentJS 解决这个问题?

4

3 回答 3

1

通常,您永远不应该解析时区缩写。它们充其量是不一致的,而且通常是模棱两可的。

例如,应该CST意味着...

  • 中部标准时间 (UTC-6)
  • 古巴标准时间 (UTC-5)
  • 中国标准时间 (UTC+8)

我需要多说吗?

于 2017-01-20T00:56:49.120 回答
0

如果你使用 MomentJS,构造函数建议你可以做这样的事情。 (Date String, Date Format, TimeZone)

您可以在此处找到时区字符串:http: //momentjs.com/timezone/

在您的情况下,您正在寻找新加坡,即:Asia/Singapore

简单的例子:

var date = moment.tz("Jay 20th 2017 8PM", "MMM Do YYYY hA", "Asia/Singapore");

这是构造函数文档的链接:http: //momentjs.com/timezone/docs/

于 2017-01-20T00:55:54.037 回答
-1

您是否尝试过使用这种格式:

new Date('1/20/2017 7:50:07 AM CST');

CST 与 SGT 是同一时区

于 2017-01-20T00:31:19.110 回答