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 解析utc时,从现在开始的时刻将在5小时后返回_Javascript_Date_Datetime_Momentjs - Fatal编程技术网

Javascript 解析utc时,从现在开始的时刻将在5小时后返回

Javascript 解析utc时,从现在开始的时刻将在5小时后返回,javascript,date,datetime,momentjs,Javascript,Date,Datetime,Momentjs,尝试使用moment.js fromNow从服务器格式化utc时间,但在某些情况下,我会改为“在5小时内” 来自服务器的时间戳-2017-11-29T15:03:21 var utcTime = new Date(timestamp); var timeAgo = moment(utcTime).fromNow(); console.log(timeAgo) 所有的日期都是过去的,所以我如何解决这个问题,使我在几个小时内没有时间?根据文档 您可以自定义区域设置 作为默认区域设置,fut

尝试使用moment.js fromNow从服务器格式化utc时间,但在某些情况下,我会改为“在5小时内”

来自服务器的时间戳-2017-11-29T15:03:21

var utcTime = new Date(timestamp);
var timeAgo = moment(utcTime).fromNow();    
console.log(timeAgo)
所有的日期都是过去的,所以我如何解决这个问题,使我在几个小时内没有时间?

根据文档

您可以自定义区域设置

作为默认区域设置,
future time
将是
future:“在%s中,
中具有
,这与文档一致。如果要更改,请更新区域设置并根据需要使用


希望这对您有所帮助

您需要使用

若你们不知道,那个么矩假设这个日期在你们当地的时区(我可以通过偏移量判断它是东部标准时间)

在你当地的时区,这个日期实际上是未来的5小时。仅在UTC中是几秒钟前,因为您的本地时区比UTC晚5小时。

如果您想将“2017-11-29T15:03:21”视为UTC,您可以使用矩的UTC方法,也可以在字符串中添加“Z”。由于您已经在使用moment.js,因此使用moment.js解析它比使用内置解析器更可靠:

var timestamp=“2017-11-30T00:20:48”;
//附加Z
log(矩(timestamp+'Z').fromNow());
//使用.utc
console.log(time.utc(timestamp.fromNow())

你想要什么
fromNow
返回的正是它应该返回的状态。我不确定是什么引起了混乱。也许你在找?我想在几秒钟前,几分钟前…而我在5小时内,这是在未来。因此,我想知道如何为时区设置格式注意,“2017-11-29T15:03:21”将被解析为本地,因此如果客户端时区与服务器的偏移量不同,它将代表不同的时间点。如果您希望将其视为UTC,请在时间戳“2017-11-29T15:03:21Z”后添加一个“Z”。您还可以执行
moment(timestamp+'Z')。fromNow()
。所有日期都是过去的,但由于utc的原因,我将进入未来的时间。我假设是的,这取决于您所在时区的哪一侧,您可能会落后于utc时间,这将是未来的时间。我理解这一点,因此如何解决它?所以解决始终是确保您正在比较的两个时间都在同一时区。或者转换本地时间到UTC或其他本地时间,以确保其提供正确的输出
var utcTime = new Date(timestamp);
var timeAgo = moment.utc(utcTime).fromNow();