Javascript 在js中创建日期忽略时区
在js中是否可以创建不受时区影响的日期对象? 例如,我想将年份设置为“2015”,月份设置为“03”,日期设置为“31” 如果我现在“打印”这个变量,它会显示如下:Javascript 在js中创建日期忽略时区,javascript,date,datepicker,timezone,Javascript,Date,Datepicker,Timezone,在js中是否可以创建不受时区影响的日期对象? 例如,我想将年份设置为“2015”,月份设置为“03”,日期设置为“31” 如果我现在“打印”这个变量,它会显示如下: Fri May 01 2015 00:00:00 GMT+0200 (ora legale Europa occidentale) ex.getUTCYear(); // 2015 ex.getUTCMonth(); // 3 ex.getUTCDate(); // 31 改到第二天。有可能避免吗?如何创建在每个时区都始终相同的
Fri May 01 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
ex.getUTCYear(); // 2015
ex.getUTCMonth(); // 3
ex.getUTCDate(); // 31
改到第二天。有可能避免吗?如何创建在每个时区都始终相同的日期对象
我需要尽快在应用程序中包含此行为,我不能只处理字符串,因为我们必须使用datepicker插件(Bootstrap),它可以处理日期对象
提前谢谢简单的回答是你不能 日期对象只是系统时间设置的访问器(因此它将使用本地计算机时区)。然后,您可以通过使用getTimezoneOffset()减去本地时区,或使用setUTCHours()强制指定时间来操纵日期 但是,如果您只能在应用程序中访问一个时区,则可以使用以下方法获取该特定时区的日期时间:
moment().tz(“美国/洛杉矶”).format()代码>是!如果使用该函数创建所有日期对象,则它们都将相对于标准UTC时区,即使用户的浏览器设置了不同的时区
例如:
var ex = new Date( Date.UTC( 2015, 3, 31 ) );
这将为2015年3月31日UTC
创建一个日期对象,并在所有浏览器中保持一致,无论其默认时区如何
在内部,ex
内的日期仍将在用户的本地时区中转换。因此,如果从中读取值,例如日期,则它将与用户的浏览器时间相关
因此,如果需要以UTC格式读取时间,可以执行以下操作:
Fri May 01 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
ex.getUTCYear(); // 2015
ex.getUTCMonth(); // 3
ex.getUTCDate(); // 31
这将以UTC时间返回值。月份从0开始。3是4月,只有30天,这就是为什么它会改为第二天。除了可以在本机日期原型上使用UTC API之外,还可以使用Date.UTC()
来构造一个没有隐含时区偏移的日期。不,当我使用“Date.UTC(2015,3,31)”设置年、月和日时,它不起作用“我得到了4月1日,同样的行为。我已经在chrome控制台中尝试了你的解决方案,仍然返回2015,4,1而不是2015,3,31:(非常感谢!我们做到了!爱你!啊哈;)月份是0-11,不是1-12。