简体   繁体   English

无法使用moment.js格式化

[英]Can't format using moment.js

I am trying to format a array of dates using moment.js but I get an error stating 我正在尝试使用moment.js格式化日期数组,但出现错误提示

dayOfWeek.format is not a function dayOfWeek.format不是函数

I am correctly imported 我已正确输入

var startOfWeek = moment().startOf('isoWeek');
var endOfWeek = moment().endOf('isoWeek');

var days = [];
var day = startOfWeek;

while (day <= endOfWeek) {
    days.push(day.toDate());
    day = day.clone().add(1, 'd');
}




var week = days.map(function(dayOfWeek, i){
  console.log(dayOfWeek);
  dayOfWeek.format("dddd, DD-MM-YYYY")
});

moment().format() function usage is not correct . moment().format()函数用法不正确

Current is: 当前是:

dayOfWeek.format("dddd, DD-MM-YYYY")

Change to: 改成:

moment(dayOfWeek).format("dddd, DD-MM-YYYY")

Check here for more information: https://momentjs.com/docs/#/parsing/string-formats/ 在此处查看更多信息: https : //momentjs.com/docs/#/parsing/string-formats/

dayOfWeek = moment(dayOfWeek).format("dddd, DD-MM-YYYY");

Your code will fail because dayOfWeek is not moment object. 您的代码将失败,因为dayOfWeek不是moment对象。

To check if your variable is moment object use .isMoment : 要检查您的变量是否是moment对象,请使用.isMoment

moment.isMoment(dayOfWeek) . moment.isMoment(dayOfWeek)

To fix your problem simply replace 要解决您的问题,只需更换

dayOfWeek.format("dddd, DD-MM-YYYY")

with

moment(dayOfWeek).format("dddd, DD-MM-YYYY")

You are also missing return statement inside .map function. 您还缺少.map函数中的return语句。

Working example: 工作示例:

 var startOfWeek = moment().startOf('isoWeek'); var endOfWeek = moment().endOf('isoWeek'); var days = []; var day = startOfWeek; while (day <= endOfWeek) { days.push(day.toDate()); day = day.clone().add(1, 'd'); } var week = days.map(function(dayOfWeek, i){ return moment(dayOfWeek).format("dddd, DD-MM-YYYY") }); console.log(week); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script> 

Just a tip, You can also do this 提示,您也可以这样做

 var currentDate = moment(new Date()); // pass your date obj here. console.log(currentDate.format('DD-MM-YY HH:mm:ss')); // later simply do this. 
 <script src="https://unpkg.com/moment@2.22.2/min/moment.min.js"></script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM