doww38701 2014-07-14 21:45
浏览 49
已采纳

Javascript在没有DST的情况下打破时区

I'm trying to set a user's timezone offset for PHP, being sent over ajax. A page has been loaded with session data. If there is no data this gets put into the page:

<script type="text/javascript">
    $(document).ready(function() {
        var visitortime = new Date();
        visitortime.setMonth(1);
        var visitortimezone = visitortime.getTimezoneOffset()*60;
        $.ajax({
            url: "/ajax/timezone/set/"+ visitortimezone,
            success: function(){
               location.reload();
            }
        });
    });
</script>

without the visitortime.setMonth(1); it runs fine and returns the right offset. But with it, it returns only 0.

I want to be able to get timezone offset without DST and then run DST check on the PHP side.

  • 写回答

1条回答 默认 最新

  • donglu2761 2014-07-14 22:06
    关注

    I managed to fix it with this bit of code:

    Date.prototype.stdTimezoneOffset = function() {
        var jan = new Date(this.getFullYear(), 0, 1);
        var jul = new Date(this.getFullYear(), 6, 1);
        return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
    }
    
    Date.prototype.dst = function() {
        return this.getTimezoneOffset() < this.stdTimezoneOffset();
    }
    
    $(document).ready(function() {
        var visitortime = new Date();
        var visitortimezone = visitortime.getTimezoneOffset()*60;
    
        if(visitortime.dst()){
            visitortimezone = visitortimezone + 60*60;
        }
    
        $.ajax({
            type: "GET",
            url: "/ajax/timezone/set/"+ visitortimezone,
            success: function(){
                location.reload();
            }
        });
    });
    

    Found here: Check if Daylight Saving Time is in effect, and if it is for how many hours.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算