Javascript Date.now()是否有不随时区变化的JS替代方案?

Javascript Date.now()是否有不随时区变化的JS替代方案?,javascript,date,Javascript,Date,我构建了一个脚本,将我的网站获取的一些数据的版本放在上面,但由于来自世界各地的用户都使用它Date.now,因此根据用户所在的时区返回不同的结果 是否有一个替代Date.now的方案,或者我忽略的一个方案可以使其标准化 编辑:这是我需要的日期: function timeDB(){ let unix_timestamp = Date.now(); var date = new Date(unix_timestamp); var hours = date.getHours(

我构建了一个脚本,将我的网站获取的一些数据的版本放在上面,但由于来自世界各地的用户都使用它Date.now,因此根据用户所在的时区返回不同的结果

是否有一个替代Date.now的方案,或者我忽略的一个方案可以使其标准化

编辑:这是我需要的日期:

function timeDB(){
    let unix_timestamp = Date.now();
    var date = new Date(unix_timestamp);
    var hours = date.getHours();
    var year =  date.getFullYear();
    var month =  date.getMonth()+1;
    var day = date.getDate();

if ( month <10){
    year = year*10;
}
if ( day <10){
    month = month*10;
}
if ( hours <10){
    day = day*10;
}
    var formattedTime = year + '' + month + '' + day + '' + hours;
    return formattedTime;
}

这个格式化的时间将被用作my DB中的一个版本,因此我需要一个通用时间戳。

如果您的环境正确配置为知道其时区,那么大多数浏览器都知道,那么您需要做的就是将时区偏移量添加到时间戳中:

Date.now() + new Date().getTimezoneOffset() * 60 * 1000

我认为您需要UTC版本的日期和时间,因此您的代码应该是

function timeDB(){
    let unix_timestamp = Date.now();
    var date = new Date(unix_timestamp);
    var hours = date.getUTCHours();
    var year =  date.getUTCFullYear();
    var month =  date.getUTCMonth()+1;
    var day = date.getUTCDate();

if ( month <10){
    year = year*10;
}
if ( day <10){
    month = month*10;
}
if ( hours <10){
    day = day*10;
}
    var formattedTime = year + '' + month + '' + day + '' + hours;
    return formattedTime;
}
这将返回相同的值,无论从哪个国家提供服务。

日期。现在返回1970-01-01 UTC的偏移量(以毫秒为单位),它不受时区或夏令时的影响,但受主机系统时钟精度的影响

对于通用时间戳,应使用通用协调时间UTC值。您可以使用getUTC*方法(如等)构建自己的字符串,也可以只使用返回的字符串,并根据需要重新格式化部件

如果您只需要YYYY-MM-DD-HH,那么您可以使用一个非常简单的函数,值已经是零填充字符串,因此不需要*10技巧:

函数timeDBdate=新日期{ 返回日期.toISOString.split/\D/.splite0,4.join; }
console.logtimeDB;这取决于你需要什么。日期本质上是一个Unix时间戳,它独立于时区,尽管它默认显示在本地时区中。所以您可以直接使用Date.now和Unix时间戳。对不起,我对堆栈溢出还是新手。我用一些新信息编辑了我的帖子。Date.now不会因时区而改变。这是1970-01-01 UTC的偏移量。谢谢,这正是我需要的: