使用moment.js解析日期字符串


Answers:


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');

小提琴


现有的日期变量呢? 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'); 警报(日期);”
ranjan

@AndrewDay ... "01-02-2017",“ 1月2日”还是“ 2月1日”?Momentjs无法读懂您的想法。

3
该答案仅适用于OP的字符串为标准日期格式的情况。Stephen Paul的答案显示了如何将给定特定格式的任何字符串转换为可以操纵的日期。
Agamemnus

361

我似乎总是发现自己落在这里只是为了意识到标题和问题不太吻合。

如果要从字符串中获取片刻日期

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

瞬间文档

Moment.js无需修改本机的Date.prototype,而是为Date对象创建包装器。

如果您想从字符串中获取javascript Date对象

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

16
是的,只有这个答案。解析字符串到日期(意味着输入是str,输出是日期)
deathangel908

@ deathangel908大声笑,不需要澄清,这个问题很清楚。

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字符串(因为构造函数可以采用其他格式)
Juan Mendes 2014年

3
在IE8中不起作用...真是令人惊讶NaN

@JuanMendes,您的链接说,它Date.parse调用new Date,所以应该没有什么区别。
sk904861 2015年

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);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.