2016-11-11 8 views
1

を与える:瞬間に文字列を変換すると、これは、JSの私のコードで間違った年に

var x = "2017-1-2"; 
var y = moment(x, "yyyy-MM-DD") 

そして、私は、コンソールでのyを見たときに、これはそれが何であるかです:

enter image description here

あなたが見ることができるように_dには正しい日と月がありますが、間違った年です。なぜこれが起こっていて、それを修正するのですか?私はその値を使ってajax経由でサーバーに送信し、間違った年が送信されます。

+0

私は前にMoment.jsと遊んませんが、 '' moment''は、コンストラクタで、あなたが '' new''キーワードを使用していないだろうと仮定したことがありませんか? – Crowes

+0

@JoshCroweいいえ、新しい瞬間オブジェクトを作成するには、新しいキーワードは不要です:) –

+1

ああ、それはコンストラクタではなくリターンを持つ関数です。ゴッチャ。 – Crowes

答えて

1

代わりに大文字のYYYYを使用してください。それは​​に記載されています。また、moment()を使って日付をローカル日付として扱い、それをUTCに変換することを忘れないでください。日付をUTCとして扱う場合は、moment.utc()を使用できます。

私のタイムゾーン(GMT + 7)では、以下のコードは"2017-01-01T17:00:00.000Z"と表示されます。

var x = "2017-1-2"; 
 
var y = moment(x, "YYYY-MM-DD") 
 
console.log(y);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment.min.js"></script>

関連する問題