2017-01-19 5 views
0

APIからサーバーの日付(タイムゾーンを含む)が取得されています。私はそれを日付オブジェクトに変換したい。Javascriptで無効な日付が返される

私はこの

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), 
    }); 

どのように私は日付/ MomentJSを使用してこの問題を解決することができますか?

+1

タイムゾーンはありません。いくつかの時間部分時間帯のうちの1つの省略形を指しているかもしれない文字がいくつかあります。サーバーからの文字列が本当にそうであれば、サーバーに戻り、有効な出力をISO8601形式で出力する必要があります。 –

答えて

-1

あなたはこのフォーマットを使用してみてくださいました:あなたはMomentJSにコンストラクタを使用している場合

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

CSTは、SGT

+1

ほとんどのブラウザでは、中国標準時ではなく、米国では中央標準時として「CST」が解釈されます。ただしないでください。 –

0

よりも同じ時間帯では、あなたがこのような何かを行うことができます示唆しています。 (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"); 

がへのリンクありコンストラクタdocs:http://momentjs.com/timezone/docs/

1

一般的に、タイムゾーンの略語は解析しないでください。彼らはせいぜい矛盾し、しばしばあいまいです。

例えば、CSTが意味する必要があります...

  • 中部標準時(UTC-6)
  • キューバ標準時(UTC-5)
  • 中国標準時(UTC + 8)

もっと言いたいですか?

関連する問題