javascript - 带有时区的 Javascript 倒计时计时器
问题描述
我有计时器。现在计时器显示 PC 上当前时间到一天结束的剩余时间,然后更新。但我需要将计时器绑定到 UTC +3 时区。我该怎么做呢?
我的代码:
function create_target_date()
{
var target_date = new Date();
//target_date.setDate(target_date.getDate()+1);
target_date.setHours(23,59,59);
return target_date;
}
function calculation_timer()
{
var target_date = create_target_date();
var current_date = new Date();
val_timer = target_date.getTime() - current_date.getTime();
var hours = Math.floor(val_timer/1000/60/60);
var minutes = Math.floor((val_timer-hours*60*60*1000)/1000/60);
var seconds = Math.floor(((val_timer-hours*60*60*1000)-minutes*60*1000)/1000);
document.getElementById('hours').innerHTML = hours;
document.getElementById('minutes').innerHTML = minutes;
document.getElementById('seconds').innerHTML = seconds;
}
function start_timer()
{
calculation_timer();
id_timer = setInterval(calculation_timer,1000);
}
解决方案
因为
var current_date = new Date();
是 UTC 时间,所以在我的函数中我使用
var utcplus = 3;
....
var hr = current_date.getHours() + utcplus;
if (hr>=24) {hr=hr-24;}
if (hr<0) {hr=hr+24;}
var min = current_date.getMinutes();
var sec = current_date.getSeconds();
utcplus 可以定义为 -12 到 +12
推荐阅读
- hibernate - 在 MappedSuperclass 中为 ElementCollection 使用共享表
- ios - 应用程序在没有堆栈跟踪的情况下在 NSPredicate 上崩溃
- lazarus - 如何在lazarus中调试dll
- c - TCP 连接:重新创建已关闭的套接字
- ios - null 不是对象(评估'__gCrWeb.form.wasEditedByUser.set')
- django - 模型的 max_length 字段在 localhost 上不起作用
- c# - 将输入字段的浮点数转移到 Unity 和 C# 中的新场景和新脚本
- c++ - 使用 map.end() 访问地图的最后一个元素
- python-3.x - Discord Bot python 3.6警告命令
- c# - 在 .Net Core API 中使用 ASMX 服务:System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型