javascript - 无法使用 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")
});
解决方案
您的代码将失败,因为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>
推荐阅读
- c# - 如果应用程序在 ASP.NET 中关闭,则执行代码
- github - 使用 github 集成更改 Visual Studio 2017 中的启动项目
- node.js - 为什么我不能从 Lambda 函数发送 SendGrid 电子邮件?
- math - x←y 在链表的上下文中如何表达?
- c# - 如何在已知长度内匹配字母和数字的精确组合?
- python - 如何在python3的csv文件中写入一次列
- python-3.x - 使用 pipenv install 自动执行预提交运行
- loops - 如何在循环中重命名列和绑定数据框?
- c - 将基数 20 转换为 int
- python - 搜索字符串,获取下一个值并写入 xml 字段 python