ここに似たような質問がたくさんあることは承知していますが、答えを見てみると、思いがけない結果が出ているようです。
完全な日付があり、ミリ秒単位でUNIXタイムスタンプに変換する必要があります
日付は完全な形式です: Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)
x
UNIXミリ秒の識別子を使用してフォーマットしようとすると(ドキュメントに示されています)、文字通り文字列が"x"
返されます
moment(date).format('x') // = x
私はここで何が間違っているのですか?date
これを行う前に、フルフォーマット以外のものに変換する必要がありますか?引数を渡してformat()
、そこに入力した形式を返すだけなのはなぜですか?
このx
オプションはMoment2.8.4で追加されました。それより古いバージョンx
では、UNIX時間(ミリ秒)ではなく文字が返されます。
バージョン2.8.4
var date = 'Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)';
var unix = moment(new Date(date)).format('x');
console.log(unix);
<p>Version 2.8.4 - working !</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
そして古いバージョン
var date = 'Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)';
var unix = moment(new Date(date)).format('x');
console.log(unix);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>
Momentの新しいバージョンでは、ランダムな文字列からの構築も非推奨であることに注意してください。
moment("Tue Dec 06 2016 10:51:47 GMT+0000 (GMT)")
非推奨の通知が表示されます。-> https://github.com/moment/moment/issues/1407を参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加