如何使用MomentJS生成指定格式的周日期对象数组?
修改MomentJS代码生成指定格式的周日期数组
你只需要调整数组中推入的内容,从格式化字符串改为包含day和date字段的对象即可,具体修改如下:
修改后的代码
const moment = require('moment') var startOfWeek = moment().startOf('week'); var endOfWeek = moment().endOf('week'); var days = []; var day = startOfWeek; while (day <= endOfWeek) { // 推入包含day和date的对象,而非格式化字符串 days.push({ day: day.format('ddd'), // 获取星期缩写(如Mon、Tue) date: day.date() // 获取日期数字(如26、27) }); day = day.clone().add(1, 'd'); } console.log(days);
输出效果
执行后会得到如下格式的数组:
[ { day: 'Sun', date: 25 }, { day: 'Mon', date: 26 }, { day: 'Tue', date: 27 }, { day: 'Wed', date: 28 }, { day: 'Thu', date: 29 }, { day: 'Fri', date: 30 }, { day: 'Sat', date: 31 } ]
可选调整:仅保留周一至周六
如果你希望去掉周日,只保留周一到周六的日期,可以修改起始周的日期:
// 将起始日改为周一 var startOfWeek = moment().startOf('week').add(1, 'd');
这样执行后就会生成你示例中6个对象的结构,日期也会正确递增。
内容的提问来源于stack exchange,提问作者Huynh Khai
相关产品推荐
相关产品推荐

