我可以从预定义的字符串(typescript)创建Date对象吗?

时间:2017-03-28 14:09:27

标签: date typescript

我有一个字符串返回的值(用逗号分隔的数字),我想从中创建一个Date对象。看起来这是不可能的,有人可以确认和/或建议我解决方案 这不起作用:

let dateString='2017,3,22,0';
let dateFromString = new Date(dateString);

这可行(当我传递数字列表时):

let dateFromString = new Date(2017,3,22,0);

这也有效:

let dateString = '2008/05/10 12:08:20';
let dateFromString = new Date(dateString);

目标是从统一字符串创建Date对象。那可能吗 ?

我可以从预定义的字符串创建一个Date对象,该字符串只有一种分隔符(逗号,冒号,斜杠或其他)吗?

1 个答案:

答案 0 :(得分:1)

如果您的环境与ES6兼容(例如,Babel,TypeScript,现代Chrome / Firefox等),您可以使用字符串.split(',')并将数组分解为如下参数:

const dateString = '2017,3,22,0';
const date = new Date(...dateString.split(','));  // date object for 2017/03/22

ES5兼容版本:

var dateString = '2017,1,2,0';
var date = new (Function.prototype.bind.apply(Date, [null].concat(dateString.split(','))));

至于.bind.apply方法如何与new一起使用,您可以查看Use of .apply() with 'new' operator. Is this possible?

注意:感谢以下两条评论,以发现我的错误