我想按日期获取一周的第一天,
此代码
var firstDayOfWeek = new Date(now.setDate(now.getDate() - now.getDay()+1));
返回
2018年10月29日星期一17:50:02 GMT + 0000(格林威治标准时间)
我该如何以以下格式获取日期?
YYYY-MM-DD
答案 0 :(得分:1)
考虑到您不想使用moment.js。
这是一种实现方式:
var now = new Date()
var firstDayOfWeek = new Date(now.setDate(now.getDate() - now.getDay()+1));
console.log(firstDayOfWeek.toISOString().substring(0,10))
// 2018-10-29
toISOString()方法使用ISO标准将Date对象转换为字符串。
该标准称为ISO-8601,格式为:YYYY-MM-DDTHH:mm:ss.sssZ
答案 1 :(得分:0)
您可以使用date-fns库的format
和firstDayOfWeek
函数,该函数不使用moment.js,而仅使用原始Date
对象。
以下是实现所需内容的摘要:
var firstDayOfWeek = format(startOfWeek(now), 'YYYY-MM-DD');
如果您希望默认情况下一周从星期一开始而不是星期日开始,您可以像这样将第二个参数传递给startOfWeek
:
var firstDayOfWeek = format(startOfWeek(now, { weekStartsOn: 1}), 'YYYY-MM-DD');
答案 2 :(得分:0)
您也可以这样:
function getMonday(d) {
d = new Date(d);
const day = d.getDay();
const diff = d.getDate() - day + (day == 0 ? -6 : 1);
return new Date(d.setDate(diff));
}
console.log(getMonday(new Date()).toISOString().substring(0, 10));