用moment.js解析字符串到目前为止

时间:2014-03-04 22:42:47

标签: javascript momentjs

我想用moment.js 2014-02-27T10:00:00 解析以下字符串并输出 日月(2014年3月14日) 我一直在阅读文档但没有成功 http://momentjs.com/docs/#/parsing/now/

6 个答案:

答案 0 :(得分:227)

我似乎总是发现自己落在这里只是为了意识到标题和问题并不完全一致。

如果您想要字符串中的日期对象

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

答案 1 :(得分:146)

您需要使用.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

答案 2 :(得分:17)

不需要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

答案 3 :(得分:3)

时刻非常适合我的需要。注意它忽略了小时和分钟,如果你让它,就会发生这种情况。这对我来说非常完美,因为我的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!");
  }
}

答案 4 :(得分:0)

也许尝试用于IE8或olyfill服务的Intl polyfill?

https://github.com/andyearnshaw/Intl.js/

答案 5 :(得分: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);

  • with moment.js:

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