function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2),
d = str.substr(6,2);
return new Date(y,m,d);
}
Cách sử dụng:
parse('20120401');
UPDATE:
Như Rocket nói, tháng được 0-có trụ sở tại js ... sử dụng này nếu tháng được không 0 dựa trên trong chuỗi của bạn
function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
return new Date(y,m,d);
}
CẬP NHẬT:
Kiểm tra nghiêm ngặt hơn về tính hợp lệ của ngày. Thông qua cách của HBP để xác nhận ngày.
function parse(str) {
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
var D = new Date(y,m,d);
return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : 'invalid date';
}
Nguồn
2012-05-17 15:22:20
http: //stackoverflow.com/a/2587398/650884 – Pavel