我有一个(yyyy-mm-dd(格式的日期,我想用时间戳和ISO格式获取开始和结束日期,我可以连接日期和时间戳,但我希望它是日期类型,而不是字符串,
let date = "2020-09-11";
预期结果应为,
startDate = 2020-09-11T00:00:00.000Z
endDate = 2020-09-11T23:59:59.000Z
开始日期正确,结束日期不正确,当我将其设置为setHours(23,59,59)
时,它给出了不同的时间戳18:29:59.000Z
,
let startDate = new Date(date);
console.log(startDate);
// output: 2020-09-11T00:00:00.000Z
let endDate = new Date(new Date(date).setHours(23,59,59));
console.log(endDate);
// output: 2020-09-11T18:29:59.000Z
我在nodejs中看到了这个将字符串转换为ISO日期时间的问题,但这对我没有帮助,我不想使用moment
,
我转换日期是不是做错了?我正在使用nodejs。
您应该使用setUTCHours()
setUTCHours()
方法根据通用时间设置指定日期的小时
let date = new Date()
let startDate = new Date(new Date(date).setUTCHours(0,0,0));
let endDate = new Date(new Date(date).setUTCHours(23,59,59));
console.log(startDate);
console.log(endDate);
您可以添加后缀而不转换为本地日期。
let date = "2020-09-11",
startDate = date + 'T00:00:00.000Z',
endDate = date + 'T23:59:59.000Z';
console.log(startDate);
console.log(endDate);