2013-12-20 13 views
7

oData Restサービスでは、Moment.jsを使用してUnixタイムスタンプから日付を作成していますが、タイムゾーンを無視したいと思います。 私の日付は「2013-12-24」です。これはUnix秒で1387839600です。でUnixタイムスタンプから日付を作成してタイムゾーンを無視して日付を作成

moment("2013-12-24", "YYYY-MM-DD").toISOString() 

結果を使用して

"2013-12-23T23:00:00.000Z"、私はGMT + 1に住んでいるので。

moment.utc("2013-12-24", "YYYY-MM-DD").toISOString() 

を使用することにより 私は "2013-12-24T00を:00:00.000Z" を取得私がしたい正確に何です。最後にズールー時間の「Z」を取り除くことができます。

しかし、私の日付の実際の表現はUnixのタイムスタンプです。私は

moment.utc(1387839600, "X").toISOString() 

を行うのであれば、私はいつも ":00:2013-12-23T23 00.000Z" を取得、私はそれが返すようにしたい "2013-12-24T00:00:00.000Z"。

私の責任はどこですか? ご協力いただきありがとうございます!

+0

ような文字列を印刷しなければならない(モーメント( "1387839600"、 "X")。フォーマット( "L")、 "DD.MM.YYYY")。toISOString() が動作しますが、それはかなり複雑なようです! – Windwalker

+1

ちょうど '瞬間(1387839600、 'X')。書式( 'YYYY-MM-DDT00:00:00.000')'? – robertklep

+0

ありがとう@robertklep、あなたのコメントを私の質問の答えとして受け入れたいと思いますが、残念ながらあなたのコメントを完全な回答にすることはできません。 – Windwalker

答えて

16

UNIXタイムスタンプは、秒またはミリ秒単位で表され、は常に(UTC)です。値1387839600は、実際には2013年12月23日午後11時00分です。確認するにはsites like this oneを使用します。

UTCの午前0時に2013-12-24にする場合は、タイムスタンプは1387843200になります。

瞬間が正しく動作しています。代わりにあなたの残りのAPIに焦点を当てて、それがUTCで正しく出力されていることを確認してください。ローカル時間値ではありません。

また、日付部分が必要な場合は、.toISOStringを使用しないでください。代わりに.formatなどを使用してください。

moment.utc(1387843200, 'X').format('YYYY-MM-DD') 
5

独自のフォーマットを作成することはできます。現状でコピーする必要がある(補間されない)文字列はすべて括弧で囲む必要があります。

だからあなたのような状況では、この作業をする必要があります:

moment(1387839600, 'X').format('YYYY-MM-DD[T00:00:00.000]') 
+0

YYYY-MM-DDは有効なISO日付です! http://en.wikipedia.org/wiki/ISO_8601 – laktak

1

toISOString()を使用しないでください。このように見ることができ

<DateTimeField mode="date" inputFormat='MM-DD-YYYY' onChange= {this.onChange} />

のonChange関数のように、のonChange機能を調節した後

moment.utc(1387839600, "X").utcOffset(1).format('YYYY-MM-DD') + "[T" + moment.utc(1387839600, "X").utcOffset(1).format('HH:mm:ss.000]') 
2

:代わりにこのようなものを使用

onChange: function(value) { console.log({myDate: moment.utc(value, 'x').format('YYYY-MM-DDTHH:mm:ss.SSSZ')}); },

それはのonChangeようです値はUnixタイムスタンプ(X)の代わりにUnix ms timestamp(x)として現れます。今までの混乱。

これは moment.utcを使用2015-07-15T15:02:00.000+00:00

関連する問題