BST 日期字符串到 javascript 日期

BST date string to javascript date

如何将 BST 日期字符串转换为 Javascript 日期对象?

以下代码给出了 BST 错误,但适用于其他时区

var data='Tue Apr 28 16:15:22 BST 2015';
var date = new Date(data);
console.log(date)

输出

Invalid Date

var data='Tue Apr 28 16:15:22 BST 2015';
var date = new Date(data);
console.log(date)

var data2='Fri Mar 27 11:53:50 GMT 2015'
var date2 = new Date(data2);
console.log(date2)

  1. 不要依赖 日期 来了解时区名称
  2. 不要将 日期时间 混用;年份应该在时间之前,时区应该是最后一件事

把这些放在一起

var timezone_map = {
    'BST': 'GMT+0100'
};

function re_order(str) {
    var re = /^(\w+) (\w+) (\d\d) (\d\d:\d\d:\d\d) (\w+) (\d\d\d\d)$/;
    return str.replace(re, function ([=10=], day, month, date, time, zone, year) {
        return day + ' ' + month + ' ' + date + ' ' + year + ' ' + time + ' ' + (timezone_map[zone] || zone);
    });
}

new Date(re_order('Tue Apr 28 16:15:22 BST 2015'));
// Tue Apr 28 2015 16:15:22 GMT+0100 (GMT Daylight Time)