moment.js-UTCが間違った日付を与える

brg:

moment.js UTCが常に間違った日付を表示するのはなぜですか。たとえば、Chromeの開発者コンソールから:

moment(('07-18-2013')).utc().format("YYYY-MM-DD").toString()
// or
moment.utc(new Date('07-18-2013')).format("YYYY-MM-DD").toString()

どちらも「2013-07-17」を返しますが、渡されたのが18日ではなく17日になるのはなぜですか

しかし、utcなしでmomentjsを使用する場合:

moment(new Date('07-18-2013')).format("YYYY-MM-DD").toString()

私は取り戻す「2013年7月18日」 moment.js UTCを使用しているとき、私も期待するものです。

これは、moment.js UTCを使用するときに正しい日付を取得できないことを意味しますか?

MasterAM:

デフォルトでは、MomentJSは現地時間で解析します。日付文字列(時間なし)のみが指定されている場合、時間のデフォルトは午前0時です。

コードでは、ローカル日付を作成し、それをUTCタイムゾーンに変換します(実際には、インスタンスがUTCモードに切り替わります)。そのため、フォーマットされると、(ローカル時刻に応じて)前方にシフトされます。後方。

ローカルタイムゾーンがUTC + N(Nは正の数)で、日付のみの文字列を解析すると、前の日付が取得されます。

これを示すいくつかの例を次に示します(私の現地時間のオフセットは、夏時間中はUTC + 3です)。

>>> moment('07-18-2013', 'MM-DD-YYYY').utc().format("YYYY-MM-DD HH:mm")
"2013-07-17 21:00"
>>> moment('07-18-2013 12:00', 'MM-DD-YYYY HH:mm').utc().format("YYYY-MM-DD HH:mm")
"2013-07-18 09:00"
>>> Date()
"Thu Jul 25 2013 14:28:45 GMT+0300 (Jerusalem Daylight Time)"

日時文字列をUTCとして解釈したい場合は、それを明示する必要があります。

>>> moment(new Date('07-18-2013 UTC')).utc().format("YYYY-MM-DD HH:mm")
"2013-07-18 00:00"

または、マットジョンソンが彼の回答で述べているように、あいまいさを防ぐために、最初にそれをUTC日付として解析し、2番目の引数としてフォーマット文字列を含めることができます(おそらくそうする必要がありますmoment.utc()

>>> moment.utc('07-18-2013', 'MM-DD-YYYY').format("YYYY-MM-DD HH:mm")
"2013-07-18 00:00"

逆の方法でUTC日​​付をローカル日付に変換するにはlocal()、次のようにメソッドを使用できます。

>>> moment.utc('07-18-2013', 'MM-DD-YYYY').local().format("YYYY-MM-DD HH:mm")
"2013-07-18 03:00"

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つの日付の間に誤った違いを与えるMoment.js

分類Dev

.day()がMoment.jsで間違った日付を返す

分類Dev

間違ったUTCオフセットを与えるMoment.js形式

分類Dev

間違った日付を示すmoment.js

分類Dev

moment.jsで間違った月を取得する

分類Dev

Moment.jsが新しい日付を誤って作成する

分類Dev

javascript new Date()またはmoment.jsの解析日が間違っています

分類Dev

Moment.js:日付間の日付

分類Dev

Moment.jsで過去X日間の日付を取得する

分類Dev

Moment.jsで日付を作成する

分類Dev

React/Redux + Moment.JS で日付が変わったか確認する

分類Dev

Moment.js-日付の粒度

分類Dev

JavaScript(moment.js)でUTC日付を現地時間に変換します

分類Dev

moment.js2桁の年が間違った4桁の年を変換する

分類Dev

moment.jsとPikadayを使用した日付が無効です

分類Dev

diffを使用すると、JSが間違った日付を表示する瞬間

分類Dev

Moment.js:期間に誤った結果が表示される

分類Dev

日付を指定された形式に変換するmoment.js

分類Dev

Moment.js - 日付が異なる場合、日付間の .diff を適切に計算できません

分類Dev

moment.jsが日付と時刻を連結する

分類Dev

Moment.js1日前

分類Dev

Moment.jsは今から間違った計算

分類Dev

moment.js 24時間形式

分類Dev

moment.jsを使用してUTC日付をローカル日付に変更する

分類Dev

moment.jsで年を取得

分類Dev

Moment.jsを使用した特定の日付からの数日/数週間前

分類Dev

Moment.jsはFirefoxで無効な日付を与えます

分類Dev

jquery.countdown.jsが間違った日付を表示している

分類Dev

moment.jsを使用して、結果が24時間を超える日時を合計する方法

Related 関連記事

  1. 1

    2つの日付の間に誤った違いを与えるMoment.js

  2. 2

    .day()がMoment.jsで間違った日付を返す

  3. 3

    間違ったUTCオフセットを与えるMoment.js形式

  4. 4

    間違った日付を示すmoment.js

  5. 5

    moment.jsで間違った月を取得する

  6. 6

    Moment.jsが新しい日付を誤って作成する

  7. 7

    javascript new Date()またはmoment.jsの解析日が間違っています

  8. 8

    Moment.js:日付間の日付

  9. 9

    Moment.jsで過去X日間の日付を取得する

  10. 10

    Moment.jsで日付を作成する

  11. 11

    React/Redux + Moment.JS で日付が変わったか確認する

  12. 12

    Moment.js-日付の粒度

  13. 13

    JavaScript(moment.js)でUTC日付を現地時間に変換します

  14. 14

    moment.js2桁の年が間違った4桁の年を変換する

  15. 15

    moment.jsとPikadayを使用した日付が無効です

  16. 16

    diffを使用すると、JSが間違った日付を表示する瞬間

  17. 17

    Moment.js:期間に誤った結果が表示される

  18. 18

    日付を指定された形式に変換するmoment.js

  19. 19

    Moment.js - 日付が異なる場合、日付間の .diff を適切に計算できません

  20. 20

    moment.jsが日付と時刻を連結する

  21. 21

    Moment.js1日前

  22. 22

    Moment.jsは今から間違った計算

  23. 23

    moment.js 24時間形式

  24. 24

    moment.jsを使用してUTC日付をローカル日付に変更する

  25. 25

    moment.jsで年を取得

  26. 26

    Moment.jsを使用した特定の日付からの数日/数週間前

  27. 27

    Moment.jsはFirefoxで無効な日付を与えます

  28. 28

    jquery.countdown.jsが間違った日付を表示している

  29. 29

    moment.jsを使用して、結果が24時間を超える日時を合計する方法

ホットタグ

アーカイブ