【发布时间】:2013-09-23 10:49:45
【问题描述】:
我知道这个问题已经被问过很多次了,因为我在 google 和 stackoverflow 上都找到了一些。
但他们都没有解释如何在我的 php 中格式化我的日期时间,以便它与 jquery 倒数计时器结合使用。所以我要在这里问它,希望有人能帮我解释一下。
基本上我要做的是创建一个倒数计时器,它将与 mysql datetime 一起使用。
日期时间存储在 mysql 中,所以只需在我的 php 中获取正确的格式,以便倒数计时器可以使用它。
我正在使用这个插件:http://keith-wood.name/countdown.html
这是我目前所拥有的:
PHP 格式:
$end_date = date("m d Y H:i:s T", strtotime($row["end_date"]));
Jquery/Javascript 代码:
<script type="text/javascript">
$(function(){
var countdown = $('#countdown'),
ts = new Date(<?php echo $end_date * 1000; ?>),
finished = true;
if((new Date()) > ts)
{
finished = false;
}
$('#defaultCountdown').countdown({
timestamp : ts,
callback : function(days, hours, minutes, seconds)
{
var message = "";
message += days + " days, ";
message += hours + " hours, ";
message += minutes + " minutes, ";
message += seconds + " seconds ";
message = (finished ? "Countdown finished" : "left untill the New Year");
countdown.html(message);
}
});
});
</script>
当我运行这段代码时,我得到的只是0 hours, 0 minutes, 0 seconds.
我只能怀疑问题出在我的 php 部分中格式化日期时间!
还是我也错过了什么?
好的,我已设法将代码缩小为:
<script type="text/javascript">
$(document).ready(function () {
$('#defaultCountdown').countdown({
until: new Date(<?php echo $end_date; ?>),
compact: true
});
});
</script>
并将 php 更改为:
$end_date = date("Y, n, j, G, i, s", strtotime($row["end_date"]));
但是,倒计时计时器中显示的时间是错误的(偏离)。
$end_date 在 mysql 日期时间中是:September 22 2013 23:30:00 GMT
但是 jquery 倒数计时器正在显示:
34d 06:21:48
2013, 9, 22, 23, 30, 00
34 天零 6 小时是绝对错误的!
我现在做错了什么?
【问题讨论】:
-
你为什么要把
$end_date乘以1000? -
@MartyMcVry,不知道为什么,但我想我不妨尝试一下,因为没有任何效果!
-
删除它 :-) 你确定该行被正确提取了吗?
-
@MartyMcVry,我已将其删除。请查看我编辑的问题。
-
倒数计时器获取正确的数据...您的计算机设置的日期是否正确?