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

Javascript 使用moment.js解析到日期的字符串,javascript,momentjs,Javascript,Momentjs,我想用moment.js2014-02-27T10:00:00解析以下字符串并输出 年月日(2014年3月14日) 我一直在看文件,但没有成功 您需要使用.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'); 无需矩.js解析输

我想用moment.js2014-02-27T10:00:00解析以下字符串并输出 年月日(2014年3月14日) 我一直在看文件,但没有成功

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

无需矩.js解析输入,因为其格式是标准格式:

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

也许可以尝试IE8的Intl polyfill或olyfill服务


我似乎总是发现自己来到这里,却发现标题和问题并不完全一致

如果您想从字符串中选择一个字符串

const myMomentObject = moment(str, 'YYYY-MM-DD')
const myDate = moment(str, 'YYYY-MM-DD').toDate();
发件人:

与修改本机Date.prototype不同,Moment.js为Date对象创建了一个包装器

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

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

这一刻正是我所需要的。请注意,它忽略了小时和分钟,如果你允许的话,它只会做它该做的事情。这对我来说是完美的,因为我的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!");
  }
}
  • 如何将任何字符串日期更改为对象日期(也使用矩.js):
let startDate=“2019-01-16T20:00:00.000”;
让endDate=“2019-02-11T20:00:00.000”;
设sDate=新日期(起始日期);
设eDate=新日期(endDate)

  • 使用moment.js:
startDate=力矩(sDate);

endDate=力矩(eDate)

这是事实,如果您有ISO日期字符串,则无需使用矩.js。。。您还可以使用它来更清楚地说明您使用的是ISO字符串(因为构造函数可以采用其他格式)在IE8中不起作用。。。真是个惊喜。。。给出
NaN
@JuanMendes,你的链接说,
Date.parse
调用
新日期,所以它不会有什么不同。Internet Explorer不再是了。哦,我多么梦想这个特权。现有的日期变量呢<代码>变量日期=时刻(“2014-02-27T10:00:00”)。格式(“DD-MM-YYYY”);var dateCalendarPart=时刻(日期).format('YYYY/MM/DD');警报(日期);警报(日期日历部分)给出无效的日期错误?????请尝试“var dateCalendarPart=moment(日期,'YYYY/MM/DD');警报(日期);“”@安德鲁迪<代码>“01-02-2017”
、“1月2日”或“2月1日”?Momentjs无法读懂你的心思。这个答案只适用于OP字符串的标准日期格式。Stephen Paul的回答显示了如何将给定特定格式的任何字符串转换为可操作的日期。它返回的字符串不是OP要求的日期。奇怪的是,只有这一个回答。分析字符串到日期(表示输入为str,输出为date)