私はユーザーが次の形式で日付を入力するフォームを持っています:YYYY-MM-DDmongoDBから日付を取得して表示するには、moment.jsを使用しますか?
私はMongo DBに日付を保存します。デフォルトでは、Mongo DBはそれをUTC日付として保存します。
例: ユーザ入力2018年2月6日 モンゴ店:「火曜2018年2月6日00:00:00 GMT + 0000(UTC)」
は、私は戻って、この日付を表示したいとしましょうユーザー。
次のコードは私に間違った日付を与える:
どう印刷されますがありvar eventDateString = $('#hiddenDate').val() // Just gets the date as stored in mongo
var dateObj = new Date(eventDateString)
var dateMom = moment(dateObj).format('dddd, MMMM DD YYYY');
console.log(dateMom)
: 「2018年2月5日(月曜日)」 これは正しくない、日付が2月6
なぜする必要がありますこれは起こっていますか?
私はこれを行うことによって、問題を解決しようとした:
var eventDateString = $('#hiddenDate').val();
$('#show-eventDate').text(moment.utc(eventDateString).format('dddd, MMMM DD YYYY'));
私は正しい結果を得る:
:しかし、私は次の警告を得る "2018年2月6日(火曜日)"
(非推奨の警告:値は認識されたISO形式ではありません。 Date():すべてのブラウザとバージョンで信頼性がありません。 ISO以外の日付形式は推奨されず、今後のメジャーリリースで削除される予定です。詳細はhttp://momentjs.com/guides/#/warnings/js-date/を参照してください。
この問題を回避するにはどうすればよいですか?
スニペットを修正するために私のaswerを編集しました。私は答えの最初の部分でそれを使うことを提案して以来、私は 'moment.utc'を知っていました(私はちょっとしたことでそれを使うのを忘れてしまった)。あなたの最初の答えを受け入れたとマークした理由と、私がコメントしたり編集を提案したりする代わりに、この新しい回答を投稿した理由を本当に理解していません。 – VincenzoC
申し訳ありません。私はこれに新しいです – Asool