使用 moment.js 将字符串解析为最新

IT技术 javascript momentjs
2021-01-17 13:43:18

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

6个回答

我似乎总是发现自己来到这里才意识到标题和问题并不完全一致。

如果您想从字符串中获取时刻日期

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

时刻文档

Moment.js 没有修改原生 Date.prototype,而是为 Date 对象创建了一个包装器。

如果您想要一个字符串中javascript Date对象

const myDate = moment(str, 'YYYY-MM-DD').toDate();
是的,只有这个答案。将字符串解析为日期(意思是输入是 str,输出是日期)
2021-03-21 13:43:18

您需要使用该.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 dateCalendarPart = moment(date,'YYYY/MM/DD'); 警报(日期);''
2021-03-23 13:43:18
现有的日期变量呢? var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);给出无效的日期错误????
2021-03-29 13:43:18
此答案仅有效,因为 OP 的字符串采用标准日期格式。Stephen Paul 的回答显示了如何将给定特定格式的任何字符串转换为可以操作的日期。
2021-03-30 13:43:18
@AndrewDay ... "01-02-2017",“1 月 2 日”还是“2 月 1 日”?Momentjs 无法读取您的想法。
2021-03-31 13:43:18
它返回字符串而不是 OP 要求的日期。奇怪的是它得到了赞成票。
2021-04-10 13:43:18

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

这是事实,如果您有 ISO 日期字符串,则不需要 moment.js ......您也可以使用Date.parse更清楚地表明您正在使用 ISO 字符串(因为构造函数可以采用其他格式)
2021-03-14 13:43:18
在 IE8 中不起作用...真是一个惊喜...给NaN.
2021-03-30 13:43:18
@JuanMendes,你的链接表示,该Date.parse电话new Date,因此它不应该有所作为。
2021-04-07 13:43:18

时刻非常适合我的需要。请注意,它会忽略小时和分钟,如果您愿意,它只会做它的事情。这对我来说非常完美,因为我的 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!");
  }
}
  • 如何将任何字符串日期更改为对象日期(也使用 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);