我有一个包含代表日期的8位数字的字符串。例如:
20120515
我想将它与今天的日期进行比较,以这种方式创建:
var currentDate = new Date();
如何将"8位日期字符串“转换为合适的日期格式,以便与currentDate进行比较?
发布于 2012-05-15 20:40:22
使用substring方法和substring off 4个元素,并将其分配给该年的新日期。然后一次子串出两个元素,并相应地存储月份和日期。
var dateString = "20120515";
var year = dateString.substring(0,4);
var month = dateString.substring(4,6);
var day = dateString.substring(6,8);
var date = new Date(year, month-1, day);
var currentDate = new Date();
现在,您可以使用常规操作符比较这两个日期。
发布于 2012-05-16 00:12:16
如果你想要一个小的数据库,你可以使用moment.js。
var a = moment("20120515", "YYYYMMDD");
// then use any of moment's manipulation or display functionality
a.format("MMM Do YYYY"); // May 15th 2012
a.fromNow(); // 14 hours ago
a.calendar(); // Today at 12:00 AM
发布于 2021-12-13 01:37:39
要正确处理本地时区,必须显式将其与计算出的时间相加
function dateStringToDate(dateString) {
try {
var year = dateString.substring(0, 4);
var month = dateString.substring(4, 6);
var day = dateString.substring(6, 8);
var date = new Date(year, month - 1, day);
const offset = date.getTimezoneOffset()
date = new Date(date.getTime() - (offset * 60 * 1000));
return date;
} catch (error) {
return null;
}
}
function dateStringToDate(dateString) {
try {
var year = dateString.substring(0, 4);
var month = dateString.substring(4, 6);
var day = dateString.substring(6, 8);
var date = new Date(year, month - 1, day);
const offset = date.getTimezoneOffset()
date = new Date(date.getTime() - (offset * 60 * 1000));
return date;
} catch (error) {
return null;
}
}
console.log(dateStringToDate("20211212"))
console.log(dateStringToDate("20211213"))
console.log(dateStringToDate("20211214"))
https://stackoverflow.com/questions/10607935
复制