首页 > 解决方案 > 无法使用 moment.js 格式化

问题描述

我正在尝试使用格式化日期数组,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")
});

标签: javascriptwebfrontendmomentjs

解决方案


您的代码将失败,因为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>


推荐阅读