Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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 - Fatal编程技术网

使用Javascript检索UTC时间戳

使用Javascript检索UTC时间戳,javascript,node.js,Javascript,Node.js,我有一个应用程序,我不关心时区,只需要UTC时间。这意味着我的时间戳需要与UTC时间匹配 我的目标是获得当天的2个UTC时间戳。假设UTC时间是6月21日13:04:47 对于这一次,我想获得当天午夜的时间戳6月21日00:00:00和24小时后的时间戳6月22日00:00:00。这两个时间的时间戳分别为1466467200和146655600000 我现在就是这样做的: var today = new Date(); var todayStart = new Date(Date

我有一个应用程序,我不关心时区,只需要UTC时间。这意味着我的时间戳需要与UTC时间匹配

我的目标是获得当天的2个UTC时间戳。假设UTC时间是6月21日13:04:47

对于这一次,我想获得当天午夜的时间戳6月21日00:00:00和24小时后的时间戳6月22日00:00:00。这两个时间的时间戳分别为1466467200146655600000

我现在就是这样做的:

    var today = new Date();
    var todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0));
    var todayEnd = new Date();
    todayEnd.setTime(todayStart.getTime() + (24 * 60 * 60 * 1000));

    console.log("start of the day: " + todayStart.getTime())
    console.log("end of the day: " + todayEnd.getTime());

这返回正确的结果,但我想知道这是可靠的,这是正确的方式来完成我想要的。谢谢您的帮助。

您这样做是可行的,应该是可靠的。如果我写的话,我会做得有点不同

var start = new Date(),
  end;

// set midnight today
start.setUTCHours(0);
start.setUTCMinutes(0);
start.setUTCSeconds(0);
start.setUTCMilliseconds(0);

// set to midnight tomorrow
end = new Date(start);
end.setUTCDate(start.getUTCDate() + 1);

console.log("start of the day: " + start.getTime());
console.log("end of the day: " + end.getTime());

此代码将开始日期创建为当前日期/时间,然后将时间部分归零。然后,24小时后只需创建一个重复的
日期
,并将日期增加1。它确实需要更多的代码,但它可以明确说明您正在做什么,并且在将来维护代码时可能更容易阅读和理解。

您的工作方式应该是可靠的。如果我写的话,我会做得有点不同

var start = new Date(),
  end;

// set midnight today
start.setUTCHours(0);
start.setUTCMinutes(0);
start.setUTCSeconds(0);
start.setUTCMilliseconds(0);

// set to midnight tomorrow
end = new Date(start);
end.setUTCDate(start.getUTCDate() + 1);

console.log("start of the day: " + start.getTime());
console.log("end of the day: " + end.getTime());

此代码将开始日期创建为当前日期/时间,然后将时间部分归零。然后,24小时后只需创建一个重复的
日期
,并将日期增加1。它确实需要更多的代码,但它明确了您正在做什么,并且在将来维护代码时可能更容易阅读和理解。

我强烈建议不要为此使用本机日期对象

查看
时刻
时刻时区
——它们涵盖了您的所有使用案例:


您可以这样做:
moment().tz('Europe/Berlin').utc()

我强烈反对为此使用本机日期对象

查看
时刻
时刻时区
——它们涵盖了您的所有使用案例:


你可以这样做:
矩().tz('Europe/Berlin').utc()

你试过矩.js吗?在处理JS中的日期时,它是一个救命稻草:@MikeMcCaughan的可能重复项不是真正的重复项,这实际上是一个时间戳。这段代码已经演示了
getTime
的知识。这个问题是问如何操作
Date
对象来获取一天中特定时间的时间戳。这个问题的答案回答了这个问题。仍然需要4个人同意我的意见…你试过矩.js了吗?在处理JS中的日期时,它是一个救命稻草:@MikeMcCaughan的可能重复项不是真正的重复项,这实际上是一个时间戳。这段代码已经演示了
getTime
的知识。这个问题是问如何操作
Date
对象来获取一天中特定时间的时间戳。这个问题的答案回答了这个问题。还是需要4个人同意我的意见。。。