将年份字符串转换为日期

时间:2017-06-15 01:27:23

标签: javascript datetime

我想将年份字符串转换为日期类型,如下例所示:

var date = new Date('1999');
console.log(date); // result -> Thu Dec 31 1998 16:00:00 GMT-0800 (Pacific Standard Time)

问题在于时区。因为字符串格式不正确而被视为UTC时区。

如何正确转换年份字符串并视为 当地时间

我知道如果我像这样'01/01/' + '1999'追加日期和月份,它会起作用,但可能还有其他解决办法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用空值初始化日期,以避免出现默认属性问题。

var date = new Date("");
date.setYear(1999);

答案 1 :(得分:0)

您应首先使用当前时区创建一个新的Date对象,然后获取您的时区偏移量,然后从中减去它。

  

getTimezoneOffset()方法返回时区差异   分钟,从当前区域设置(主机系统设置)到UTC。

以下内容应该有效:

undefined

您也可以在jsfiddle上在线试用。

答案 2 :(得分:0)

您应该始终使用UTC明确声明任何日期变量,然后在需要时转换它们。首先以UTC格式声明日期,然后将其转换为字符串。所以我认为你需要:

var date = new Date('1999-01-01 08:00:00 UTC');
console.log(date.toString());