@Christoph Mentions sử dụng regex để giải quyết vấn đề. Đây là những gì tôi đang sử dụng:
var dateString = "2010-08-09 01:02:03";
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(dateString);
var dateObject = new Date(
(+dateArray[1]),
(+dateArray[2])-1, // Careful, month starts at 0!
(+dateArray[3]),
(+dateArray[4]),
(+dateArray[5]),
(+dateArray[6])
);
Không có nghĩa là thông minh, chỉ cần cấu hình regex và new Date(blah)
phù hợp với nhu cầu của bạn.
Chỉnh sửa: Có thể dễ hiểu hơn một chút trong ES6 bằng cách sử dụng hàm hủy:
let dateString = "2010-08-09 01:02:03"
, reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/
, [, year, month, day, hours, minutes, seconds] = reggie.exec(dateString)
, dateObject = new Date(year, month-1, day, hours, minutes, seconds);
Nhưng trong tất cả sự trung thực những ngày này tôi đạt được một cái gì đó như Khoảnh khắc