1

几个小时以来,我一直在反对这个问题,并且可以使用一组额外的眼睛。:-)

我正在尝试设置一个 jQuery 倒计时,该倒计时在美国东部标准时间下午 3 点每 24 小时重置一次,无论时区如何,计时器都应显示在美国东部标准时间。

我在 WordPress 网站上使用 Keith Wood 的 jQuery Countdown 插件。http://keith-wood.name/countdownRef.html

我在 jQuery 论坛上找到了这个帖子,它帮助我了解了我目前所处的位置。https://forum.jquery.com/topic/countdown-plugin-how-to-restart-countdown-timer-every-24-hours

我还能够从那个线程中查看这些家伙的网站,我需要的确切功能可以正常工作。http://bedeals.com

所以我想我一定只是错过了一些明显的东西。有人介意看看我为此编写的代码吗?

jQuery(document).ready(function($) {
    function serverTime() { 
        var time = null; 
        $.ajax({url: 'http://72.52.139.171/~eyedictive/wp-content/themes/eyedictive/servertime.php', 
            async: false, dataType: 'text',
            success: function(text) { 
                time = new Date(); 
                //alert(time);
            }, 
            error: function(http, message, exc) { 
                time = new Date(); 
                //alert("test");
        }}); 
        return time;

    } 

    function getCountDown() {
        var until = getNowEDT();
        until.setHours(15,0,0,0); // Next 3pm
        return until;
    }

    function getNowEDT() {
        var now = new Date(); 
        now.setMinutes(now.getMinutes() + now.getTimezoneOffset() - 4 * 60); // EDT is UTC-4
        return now;
    }   

    $('#home-timer').countdown({until: getCountDown(), compact: true, serverSync: serverTime, format: 'HMS', timezone: -4,
        onExpiry: function() {
            alert('We have lift off!'); 
            $(this).countdown('change', {until: getCountDown()});
    }});    

}});

这是 servertime.php 的内容:

<?php
$now = new DateTime();
echo $now->format("M j, Y H:i:s O")."\n";
?>

提前致谢!

4

0 回答 0