文字列をmoment.jsで日付まで解析します


回答:


205

.format()関数を使用する必要があります。

MM -月数

MMM -月の単語

var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY');
var dateMonthAsWord = moment("2014-02-27T10:00:00").format('DD-MMM-YYYY');

FIDDLE


既存の日付変数はどうですか? var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);無効な日付エラーが発生しますか?????
Andrew Day

3
'' var dateCalendarPart = moment(date、 'YYYY / MM / DD');を試してください。alert(date); ''
ランジャン2017年

@AndrewDay ... "01-02-2017"、「1月2日」または「2月1日」?Momentjsはあなたの心を読み取ることができません。

3
この回答は、OPの文字列が標準の日付形式であるためにのみ機能します。スティーブンポールの答えは、特定の形式を与えられた文字列を、操作可能な日付に変換する方法を示しています。
アガメムス

362

タイトルと質問が完全に一致していないことに気づくために、私はいつもここに着陸しているようです。

文字列から日付を取得したい場合

const myMoment = moment(str, 'YYYY-MM-DD')

瞬間のドキュメントから:

Moment.jsは、ネイティブのDate.prototypeを変更する代わりに、Dateオブジェクトのラッパーを作成します。

代わりに文字列からjavascript Dateオブジェクトが必要な場合

const myDate = moment(str, 'YYYY-MM-DD').toDate();

16
うん、これだけ答えます。現在までの文字列の解析(入力がstr、outが日付であることを意味します)
deathangel908

@ deathangel908笑、明確にする必要はありません。質問は完全に明確です。
2017

20

そのフォーマットは標準的なものなので、moment.jsが入力を解析する必要はありません。

var date = new Date('2014-02-27T10:00:00');
var formatted = moment(date).format('D MMMM YYYY');

http://es5.github.io/#x15.9.1.15


1
それは真実です。ISO日付文字列があれば、moment.jsは必要ありません... Date.parseを使用して、ISO文字列で作業していることをより明確にすることもできます(コンストラクターが他の形式を取ることができるため)
フアンメンデス

3
IE8 ...何の驚きでは動作しません...与えますNaN
2014年

あなたのリンクによると、@ JuanMendesはをDate.parse呼び出すnew Dateので、違いはありません。
sk904861

6

瞬間は私が必要としていたものにぴったりでした。注意それは時間と分を無視し、あなたがそれをさせた場合それだけのものです。私のAPI呼び出しは日付と時刻を返すので、これは私にとって完璧でしたが、私は日付のみを気にします。

function momentTest() {

  var varDate = "2018-01-19 18:05:01.423";
  var myDate =  moment(varDate,"YYYY-MM-DD").format("DD-MM-YYYY");
  var todayDate = moment().format("DD-MM-YYYY");  
  var yesterdayDate = moment().subtract(1, 'days').format("DD-MM-YYYY");   
  var tomorrowDate = moment().add(1, 'days').format("DD-MM-YYYY");

  alert(todayDate);

  if (myDate == todayDate) {
    alert("date is today");
  } else if (myDate == yesterdayDate) {
    alert("date is yesterday");
  } else if (myDate == tomorrowDate) {
    alert("date is tomorrow");
  } else {
    alert("It's not today, tomorrow or yesterday!");
  }
}


0
  • 文字列の日付をオブジェクトの日付に変更する方法(moment.jsも使用):

let startDate = "2019-01-16T20:00:00.000"; let endDate = "2019-02-11T20:00:00.000"; let sDate = new Date(startDate); let eDate = new Date(endDate);

  • moment.jsの場合:

startDate = moment(sDate); endDate = moment(eDate);

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.