【发布时间】:2019-03-24 16:09:19
【问题描述】:
我一直在尝试编写一个脚本,它将获取丹佛的当前时间并将其输出到 URL 中。
我已经走到这一步了:http://jsfiddle.net/Chibears85/h41wu8vz/4/
JS
$(function() {
var today = new Date();
var ss = today.getUTCSeconds();
var nn = today.getUTCMinutes() - 3; //3 minute delay
var hh = today.getUTCHours() - 6; //Offset UTC by 6 hours (Mountain Time)
var dd = today.getUTCDate();
var mm = today.getUTCMonth() + 1; //January is 0!
var yyyy = today.getUTCFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
if (hh < 10) {
hh = '0' + hh
}
var today = mm + '/' + dd + '/' + yyyy + '%20' + hh + ':' + nn + ':' + ss ;
$('img.r').each(function() {
var url = $(this).attr('src');
if (url.indexOf("?") >= 0) {
$(this).attr("src", url + today);
} else {
$(this).attr("src", url + "?feature_date=" + today);
}
});
});
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="screen.js"></script>
<img class="r" src="https://mywebsite.com&DateTime=" width="400">
它将日期插入 URL,但是从山区时间下午 6 点到凌晨 12 点,时间会中断(2018 年 10 月 20 日 01:00:00 变为 2018 年 10 月 20 日 -5:00:00 而不是 19:00:00 2018 年 10 月 19 日)和 3 分钟的延迟偏移使其每小时从 :00-:02 中断(1:01 变为 1:-02 而不是 00:59)。
我想知道如何修复 UTC 偏移量,这样它就不会减去负数并适当地偏移日期/月份/年份。
【问题讨论】:
-
你可以使用插件吗?如果是这样,你可以使用MomentJS,先看看文档,如果你认为你可以从一些插件中获得帮助,试着用它来计算,如果你遇到任何复杂的问题,也许我可以帮助解决这样一来,这样做会降低很多代码复杂性,并且 momentjs 将能够处理计算而不会出现与时区或其他任何错误有关的任何错误
-
我可以使用 MomentJS,我今天早些时候正在研究它试图解决这个问题,但我遇到了无法弄清楚如何让 MomentJS 将日期输出到我的图像的 URL 中。
-
那么,您需要获取丹佛的当前时间并将其设置为图像的 src 属性吗?
-
浏览器对
toLocaleString选项的支持程度不同,但根据您的要求,您也许可以使用new Date().toLocaleString('en-US', {timeZone: 'America/Denver'}) -
图片每 3 分钟上传到服务器,但标注为创建时间而不是发布时间(12:03 创建的图片直到 12:06 才会推送到服务器)
标签: javascript datetime timezone utc