我有一个字符串格式为
Today 3:28AM
Yesterday 3:28AM
08/22/2011 3:28AM
我需要做的是以某种方式将字符串的日期部分提取到变量中,即。 “今天”、“昨天”或格式为 DD/MM/YYYY 的日期。
用 JavaScript 可以实现这样的事情吗?
最佳答案
由于 JavaScript 日期解析器无法识别您的日期,因此您可以编写一个解析器,将日期转换为它可以识别的格式。这是一个函数,它采用您提供的日期示例并格式化它们以获得有效的日期字符串:
function strToDate(dateStr) {
var dayTimeSplit = dateStr.split(" ");
var day = dayTimeSplit[0];
var time = dayTimeSplit[1];
if (day == "Today") {
day = new Date();
} else if (day == "Yesterday") {
day = new Date();
day.setDate(day.getDate() - 1);
} else {
day = new Date(day);
}
var hourMinutes = time.substring(0, time.length -2);
var amPM = time.substring(time.length -2, time.length);
return new Date((day.getMonth() + 1) + "/" + day.getDate() + "/" + day.getFullYear()
+ " " + hourMinutes + " " + amPM);
}
然后您可以调用 stroToDate 将日期格式转换为有效的 JavaScript 日期:
console.log(strToDate("Today 3:28AM"));
console.log(strToDate("Yesterday 3:28AM"));
console.log(strToDate("08/22/2011 3:28AM"));
输出:
Sun Sep 25 2011 03:28:00 GMT-0700 (Pacific Daylight Time)
Sat Sep 24 2011 03:28:00 GMT-0700 (Pacific Daylight Time)
Mon Aug 22 2011 03:28:00 GMT-0700 (Pacific Daylight Time)
关于Javascript:从字符串中提取日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550416/