将返回的字符串(YYYYMMDD)转换为Date

时间:2012-05-15 20:00:31

标签: javascript datetime

我有一个包含8个数字的字符串,代表一个日期。例如:

20120515

我想将它与今天的日期进行比较,以这种方式创建:

var currentDate = new Date();

如何将“8位数日期字符串”转换为合适的日期格式,以便将其与currentDate进行比较?

2 个答案:

答案 0 :(得分:38)

使用子字符串方法和子字符串关闭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();

现在,您可以将两个日期与普通运算符进行比较。

答案 1 :(得分:18)

如果您想要一个小型日期库,可以使用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