如何将时区添加到jQuery倒计时



我正在使用我找到的倒计时,它将倒计时到直播的开始,所以它目前正在倒计时到电脑的时间,而我希望它倒计时到英国夏令时(8月25日上午9点)(英国时间)。

这是HTML代码,我相信这就是你所需要的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
    <link rel="stylesheet" href="ie.css" type="text/css" charset="utf-8" />
    <script language="Javascript" type="text/javascript" src="js/jquery-1.4.4.js"></script>
    <script language="Javascript" type="text/javascript" src="js/jquery.lwtCountdown-1.0.js"></script>
    <script language="Javascript" type="text/javascript" src="js/misc.js"></script>
</head>
<body>
    <div id="countdown">
        <div class="dash weeks_dash">
            <span class="dash_title">weeks</span>
            <div class="digit">0</div>
            <div class="digit">0</div>
        </div>
        <div class="dash days_dash">
            <span class="dash_title">days</span>
            <div class="digit">0</div>
            <div class="digit">0</div>
        </div>
        <div class="dash hours_dash">
            <span class="dash_title">hours</span>
            <div class="digit">0</div>
            <div class="digit">0</div>
        </div>
        <div class="dash minutes_dash">
            <span class="dash_title">minutes</span>
            <div class="digit">0</div>
            <div class="digit">0</div>
        </div>
        <div class="dash seconds_dash">
            <span class="dash_title">seconds</span>
            <div class="digit">0</div>
            <div class="digit">0</div>
        </div>
    </div> <!-- end of countdown -->
    <!-- start of the javascript code that handles the countdown -->
    <script language="javascript" type="text/javascript">
        jQuery(document).ready(function() {
            $('#countdown').countDown({
                targetDate: {
                    'day':      25,
                    'month':    8,
                    'year':     2013,
                    'hour':     9,
                    'min':      0,
                    'sec':      0
                }
            });
        });
    </script>
    <!-- end of the javascript code that handles the countdown -->
</body>

我想你指的是这个组件。下次,请提供一个链接,这样我们就不必搜索了。

首先确定活动的UTC时间。有很多方法可以做到这一点,所以我不会在这里解决它们,除非这是您的具体问题。

您给出的示例的UTC时间是2013-08-05 8:00:00。

在他们的文档中,他们展示了如何在UTC中打发时间:

jQuery(document).ready(function() {
    $('#countdown').countDown({
        targetDate: {
            'day':      25,
            'month':    8,
            'year':     2013,
            'hour':     8,        // note the input time is in utc
            'min':      0,
            'sec':      0,
            'utc':      true      // set this parameter to true
            }
        });
    });

深入研究组件本身的来源,在jquery.lwtCountdown-1.0.js中,这段代码中有一个错误:

if (options.targetDate)
{
    targetTime = new Date(options.targetDate.month + '/' + options.targetDate.day + '/' + options.targetDate.year + ' ' + options.targetDate.hour + ':' + options.targetDate.min + ':' + options.targetDate.sec + (options.targetDate.utc ? ' UTC' : ''));
}

他们通过组装一个以mm/dd/yyyy格式硬编码的日期字符串来创建Date。这在使用其他日期格式的地方是行不通的,比如英国使用的dd/mm/yyyy格式。它们应该传递单独的参数。将代码更改为:

if (options.targetDate)
{
  var td = options.targetDate;
  if (options.targetDate.utc)
    targetTime = new Date(Date.UTC(td.year, td.month-1, td.day, td.hour, td.min, td.sec));
  else
    targetTime = new Date(td.year, td.month-1, td.day, td.hour, td.min, td.sec);
}

您还应该向作者报告此错误。

相关内容

  • 没有找到相关文章

最新更新