Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在js中创建日期忽略时区_Javascript_Date_Datepicker_Timezone - Fatal编程技术网

Javascript 在js中创建日期忽略时区

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 改到第二天。有可能避免吗?如何创建在每个时区都始终相同的

在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
改到第二天。有可能避免吗?如何创建在每个时区都始终相同的日期对象

我需要尽快在应用程序中包含此行为,我不能只处理字符串,因为我们必须使用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。