首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个JS时间代码有用吗?我能让它好点吗?

这个JS时间代码有用吗?我能让它好点吗?
EN

Stack Overflow用户
提问于 2010-11-17 15:46:43
回答 2查看 184关注 0票数 0

我在周六下午6点到周日凌晨4点之间显示一条信息。上一次我不得不这样做,它没有工作,因为我没有考虑到UTC的时间变成负值时,将它改为纽约时间。

我正在做正确的数学运算(在适当的时候显示)?我应该把UTC转换代码放到它自己的函数中吗?这是你见过的最糟糕的js吗?

- jquery叫做--

代码语言:javascript
复制
$(document).ready(function() {
var dayTime = new Date();
var day = dayTime.getUTCDay();
var hour = dayTime.getUTCHours();
    //alert(day.toString()+" "+hour.toString());
    if (hour >= 5){
         hour = hour-5;          
    }
    else{
        hour = hour+19;
            if(day > 0){
                day--;
            }
            else{
                day = 6;    
            }
    }
    //alert(day.toString()+" "+hour.toString());
    if ((day == 6 && hour >= 18) || (day == 0 && hour < 4)){            
    }
    else{
        $('#warning').hide();  //Want this message to show if js is disabled as well
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 15:52:30

你为什么还需要UTC的东西?只需与当地时间合作:

代码语言:javascript
复制
var day = dayTime.getDay();
var hour = dayTime.getHours();

你也可以清理一下这个条件:

代码语言:javascript
复制
if (!(day == 6 && hour >= 18) && !(day == 0 && hour < 4)) {
    $('#warning').hide();
}
票数 2
EN

Stack Overflow用户

发布于 2010-11-17 16:07:11

这应该会让您获得服务器的时间:

代码语言:javascript
复制
var dayTime = new Date();
localOffset = dayTime.getTimezoneOffset() * 60000;
serverOffset = 5 * 60 * 60000;
dayTime = new Date(dayTime.getTime() + (localOffset - serverOffset));

在服务器偏移量中使用"5“,这是时间问题。可能需要5分;我不太确定。

而且,这将打破所有的夏令储蓄。您必须以某种方式检测到这一点,并修改serverOffset。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4206174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档