Javascript提供无效日期

时间:2017-01-19 23:58:16

标签: javascript momentjs jquerydatetimepicker

我从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解决此问题?

3 个答案:

答案 0 :(得分:1)

通常,您不应该解析时区缩写。它们充其量不一致,而且往往含糊不清。

例如,CST应该是......

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

我需要说更多吗?

答案 1 :(得分: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/

答案 2 :(得分:-1)

您是否尝试使用此格式:

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

CST与SGT的时区相同