我试图使用moment.js
格式化一个日期数组,但是我得到了一个错误声明
dayOfWeek.format不是一个函数
我是正确进口的
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")
});
发布于 2018-07-02 05:16:26
您的代码将失败,因为dayOfWeek
不是moment
对象。
若要检查变量是否为moment
对象,请使用.isMoment
moment.isMoment(dayOfWeek)
。
要解决您的问题,只需替换
dayOfWeek.format("dddd, DD-MM-YYYY")
使用
moment(dayOfWeek).format("dddd, DD-MM-YYYY")
您还缺少了return
函数中的.map
语句。
工作示例:
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>
发布于 2018-07-02 05:04:27
moment().format()
函数用法是不正确的。
目前:
dayOfWeek.format("dddd, DD-MM-YYYY")
改为:
moment(dayOfWeek).format("dddd, DD-MM-YYYY")
有关更多信息,请查看此处:https://momentjs.com/docs/#/parsing/string-formats/
发布于 2018-07-02 05:07:45
dayOfWeek = moment(dayOfWeek).format("dddd, DD-MM-YYYY");
https://stackoverflow.com/questions/51136860
复制