我想在我的网页上使用此JavaScript代码显示UTC日期 .
<script>
function myDate()
{
var now = new Date();
var d = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
var x = document.getElementById("demo");
x.innerHTML=d;
}
</script>
使用此代码,我将UTC日期显示为本地字符串,如下所示:“Thu Jul 04 2013 00:00:00 GMT 0530(India Standard Time)”
我不希望显示具有本地时间偏移(GMT 0530(IST))的字符串,而是希望时间显示为UTC字符串格式
3 回答
不同浏览器返回的日期格式不同
从您可以使用替换日期删除GMT OFFSET
首先,问题是您通过传递UTC年,月和日来实例化本地Date对象 . 然后,这将使用提供的值创建本地日期 . 通过这样做,您可能会根据您希望它是UTC还是本地来创建不正确的日期 . 在您的情况下,如果您希望
var now
为UTC,那么您当前实例化的方式与本地时间不同 .无论如何,日期在JavaScript中可能很棘手,所以我会考虑使用Moment.js
它是一个非常棒的库,提供了操作和转换您可能需要的JavaScript日期的所有功能 .
例如,您可以执行以下操作:
嗯..你确定要显示UTC-8吗?我猜你真的想把时间转换成美国太平洋时区 . 这并不总是UTC-8 . 有时它是UTC-8,有时它是UTC-7 .
如果您实际上并不在美国太平洋时区,那么在JavaScript中可靠地执行此操作的唯一方法是使用实现TZDB数据库的库 . I list several of them here .
例如,使用walltime-js库,您可以执行以下操作:
您不能只添加或减去固定数字,因为目标时区可能会使用不同的偏移量,具体取决于您正在谈论的日期 . 这主要是由于夏令时,也是因为时区随时间而变化 .