Timeago 给了我错误的时间
Timeago giving me wrong amount of time
我正在尝试使用 timeago 来显示在我的网站上完成某项操作的时间。
我正在使用 ajax 请求将行添加到 table,然后在添加所有行后,我将再次激活 timeago。我有一个名为 fill_table()
的函数,它从 php 脚本中收集一些行数据,然后循环将数据添加到 table.
function fill_table() {
$.ajax({
...
success : function(data) {
var table = $('#table_body');
table.empty();
$.each(data, function( index, value ) {
var date = new Date(new Date(value.last_updates).toLocaleString("en-US", {timeZone: "America/Chicago"})).toISOString();
var elem = '\
<tr>\
<td><a target="_blank" href="' + value.name + '">' + value.name + '</a></td>\
<td>' + value.market_value + '</td>\
<td>' + value.lowest_cost + '</td>\
<td>' + value.biggest_md_format + '</td>\
<td><time class="timeago" datetime="' + date + '"></time></td>\
</tr>\
';
table.append(elem);
});
$("time.timeago").timeago();
},
error : function(request,error)
{
console.log("Request: "+JSON.stringify(request));
}
});
}
现在,出于某种原因,这告诉我“6 小时前”的时间戳最多应该只有 8-12 分钟。
正如您在代码中看到的那样,我已经声明 date
使用一些疯狂的 toLocaleString 东西来确保它是正确的时区,我也已经设置了 PHP header 在我的控制器中
date_default_timezone_set('America/Chicago');
检查 timeago 元素给了我这个
<time class="timeago" datetime="2019-03-03T12:56:28.000Z">about 6 hours ago</time>
日期时间正确,12:56 AM CST (America/Chcago),但那只是大约 10 分钟前。
所以我很茫然,我尝试修复时区问题但没有成功,不知道还能做什么。
如何让 timeago 读取正确的时间?
那个日期时间不正确。最后的 Z
将其指定为 UTC 时区,而不是您当地的时区。所以 timeago 正确地给出了与 UTC 时间相差多个小时的时间。
检查您的输入和 JS 中的转换逻辑。
我正在尝试使用 timeago 来显示在我的网站上完成某项操作的时间。
我正在使用 ajax 请求将行添加到 table,然后在添加所有行后,我将再次激活 timeago。我有一个名为 fill_table()
的函数,它从 php 脚本中收集一些行数据,然后循环将数据添加到 table.
function fill_table() {
$.ajax({
...
success : function(data) {
var table = $('#table_body');
table.empty();
$.each(data, function( index, value ) {
var date = new Date(new Date(value.last_updates).toLocaleString("en-US", {timeZone: "America/Chicago"})).toISOString();
var elem = '\
<tr>\
<td><a target="_blank" href="' + value.name + '">' + value.name + '</a></td>\
<td>' + value.market_value + '</td>\
<td>' + value.lowest_cost + '</td>\
<td>' + value.biggest_md_format + '</td>\
<td><time class="timeago" datetime="' + date + '"></time></td>\
</tr>\
';
table.append(elem);
});
$("time.timeago").timeago();
},
error : function(request,error)
{
console.log("Request: "+JSON.stringify(request));
}
});
}
现在,出于某种原因,这告诉我“6 小时前”的时间戳最多应该只有 8-12 分钟。
正如您在代码中看到的那样,我已经声明 date
使用一些疯狂的 toLocaleString 东西来确保它是正确的时区,我也已经设置了 PHP header 在我的控制器中
date_default_timezone_set('America/Chicago');
检查 timeago 元素给了我这个
<time class="timeago" datetime="2019-03-03T12:56:28.000Z">about 6 hours ago</time>
日期时间正确,12:56 AM CST (America/Chcago),但那只是大约 10 分钟前。
所以我很茫然,我尝试修复时区问题但没有成功,不知道还能做什么。
如何让 timeago 读取正确的时间?
那个日期时间不正确。最后的 Z
将其指定为 UTC 时区,而不是您当地的时区。所以 timeago 正确地给出了与 UTC 时间相差多个小时的时间。
检查您的输入和 JS 中的转换逻辑。