我想将年份字符串转换为日期类型,如下例所示:
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'
追加日期和月份,它会起作用,但可能还有其他解决办法吗?
答案 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());