Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 法定UTC日期_Javascript_Node.js_Date - Fatal编程技术网

Javascript 法定UTC日期

Javascript 法定UTC日期,javascript,node.js,date,Javascript,Node.js,Date,我一直在寻找一种在JS应用程序中保持UTC日期的方法;但是,在任何情况下,日期的getTimezoneOffset()都不会返回0,我想这应该是事实——这在UTC和本地TZ之间确定日期时似乎很重要 请看下面我尝试过的例子,提前感谢您的帮助 var TheDate = new Date( Date.UTC(2012, 10, 5) ); console.log(TheDate.getTimezoneOffset()) // => 300 (for me) ECAMScript日期本质上是U

我一直在寻找一种在JS应用程序中保持UTC日期的方法;但是,在任何情况下,日期的
getTimezoneOffset()
都不会返回
0
,我想这应该是事实——这在UTC和本地TZ之间确定日期时似乎很重要

请看下面我尝试过的例子,提前感谢您的帮助

var TheDate = new Date( Date.UTC(2012, 10, 5) );
console.log(TheDate.getTimezoneOffset()) // => 300 (for me)

ECAMScript日期本质上是UTC,只是ECMAScript历元的偏移量(1970-01-01T00:00:00Z的时间值,以毫秒为单位),仅此而已。它们没有相关的时区

使用主机时区偏移:

  • 创建日期以确定等效UTC时间并计算时间值时
  • 在使用本地日期和时间的各种方法中,例如getHours(vs getUTCHours)
  • 日期本身对时区一无所知

    getTimezoneOffset返回的值基于主机系统设置,它与调用日期的唯一关系是计算该日期的偏移量。该方法可能被称为getHostSystemTimezoneOffset,因为这是它返回的结果

    在代码中:

    new Date(Date.UTC(2012, 10, 5))
    
    创建2012-11-05T00:00:00Z的日期。在该日期调用getTimezoneOffset将返回等效本地日期和时间的主机系统偏移量,而不是创建日期时使用的偏移量

    如果不使用库(您编写的库或许多现有库之一),就无法将时区与日期关联

    在第二个示例中:

    moment().utc()
    
    只需设置一个标志,告诉moment.js方法在任何情况下都使用UTC。然后使用:

    ....toDate().getTimezoneOffset()
    
    返回一个日期对象,然后获取该日期的主机系统时区偏移量,就像执行以下操作一样:

    new Date().getTimezoneOffset()
    

    如果您只想使用UTC,那么对所有事情都使用UTC方法,完全忽略时区(我认为这是您想要做的)。

    ECAMScript日期本质上是UTC,只是ECMAScript历元的偏移量(1970-01-01T00:00:00Z的毫秒时间值),仅此而已。它们没有相关的时区

    使用主机时区偏移:

  • 创建日期以确定等效UTC时间并计算时间值时
  • 在使用本地日期和时间的各种方法中,例如getHours(vs getUTCHours)
  • 日期本身对时区一无所知

    getTimezoneOffset返回的值基于主机系统设置,它与调用日期的唯一关系是计算该日期的偏移量。该方法可能被称为getHostSystemTimezoneOffset,因为这是它返回的结果

    在代码中:

    new Date(Date.UTC(2012, 10, 5))
    
    创建2012-11-05T00:00:00Z的日期。在该日期调用getTimezoneOffset将返回等效本地日期和时间的主机系统偏移量,而不是创建日期时使用的偏移量

    如果不使用库(您编写的库或许多现有库之一),就无法将时区与日期关联

    在第二个示例中:

    moment().utc()
    
    只需设置一个标志,告诉moment.js方法在任何情况下都使用UTC。然后使用:

    ....toDate().getTimezoneOffset()
    
    返回一个日期对象,然后获取该日期的主机系统时区偏移量,就像执行以下操作一样:

    new Date().getTimezoneOffset()
    

    如果您只想使用UTC,那么对所有事情都使用UTC方法,完全忽略时区(我认为这是您想要做的)。

    当您使用
    .toString()格式化日期时,
    getTimezoneOffset()
    是偏移量。当您使用
    .toutString()
    格式化日期时,这是毫无意义的。请注意,它的值根本不是日期对象的属性,而是您环境的区域设置,您无法对其进行任何更改。从~“返回时区差,以分钟为单位,从当前区域设置(主机系统设置)到UTC”,因此,我应该理解日期没有时区,这台机器有一个时区。@Bergi你可以做点什么来改变它
    process.env.TZ='UTC'
    @Paul我想这就是我要做的,谢谢你的建议!
    getTimezoneOffset()
    是使用
    .toString()
    格式化日期时的偏移量。当您使用
    .toutString()
    格式化日期时,这是毫无意义的。请注意,它的值根本不是日期对象的属性,而是您环境的区域设置,您无法对其进行任何更改。从~“返回时区差,以分钟为单位,从当前区域设置(主机系统设置)到UTC”,因此,我应该理解日期没有时区,这台机器有一个时区。@Bergi你可以做点什么来改变它
    process.env.TZ='UTC'
    @Paul我想这就是我要做的,谢谢你的建议!