当我想在日期之间获取数据时,我有一些情况。我想返回日期之间的数据,它总是给我错误的结果。
我试着使用,例如:
date1 >= '1-28-2019' && date2 <= '2-8-2019'它总是显示错误的结果。
let created_on = new Date(task['created-on'])
let month = created_on.getMonth() + 1
let date = created_on.getDate()
let year = created_on.getFullYear()
let date_now = new Date()
let year_now = date_now.getFullYear()
let combine = month + '-' + date
console.log(combine >= '1-28' && combine <= '2-8' && year_now == year)我想要从日期1-28到日期2-8和本年度的数据。但是它给出了错误的结果,我的代码中有什么问题吗?
感谢您回答这个问题。
发布于 2019-08-19 14:18:57
使用slice的
function leadingZero(str, len = 2) {
return (new Array(len).fill(0).join('') + str).slice(-len);
}
let combine = leadingZero(month) + '-' + leadingZero(date);
// 0128 for `1-28`, 0208 for `2-8`使用Number的
let combine = month * 100 + day;
// 128 for `1-28` 208 for `2-8`发布于 2019-08-19 14:30:59
请查看MDN
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
let task = { 'created-on': new Date(2019, 1, 6) };
let created_on = new Date(task['created-on'])
let month = created_on.getMonth(); // Use index
let date = created_on.getDate()
let year = created_on.getFullYear()
let date_now = new Date()
let year_now = date_now.getFullYear()
// let combine = month + '-' + date
let startDate = new Date(year_now, 0, 28); // 0 - Jan
let endDate = new Date(year_now, 1, 8); // 1 - Feb
// direct compare with `created_on`
console.log(created_on >= startDate && created_on <= endDate); // year will be same if comparison is `true`
// compare with constructed date
let combine = new Date(year, month, date);
console.log(combine >= startDate && combine <= endDate);
发布于 2019-08-19 14:15:41
从字符串date创建一个date对象,并对它们进行比较。
date1 >= new Date(2019, 0, 28) && date2 <= new Date(2019, 1, 8)正如David784所说,多日期构造函数之一是 Date (year,monthIndex,day)。根据MDN doc,monthIndex从0 (一月)到11 (十二月)。
https://stackoverflow.com/questions/57551202
复制相似问题