Php 使用jquery倒计时与mysql日期时间?
我知道这个问题已经被问过很多次了,因为我在谷歌和stackoverflow上都发现了一些问题 但是他们都没有解释如何在我的php中格式化我的datetime,这样它就可以与jquery倒计时结合使用了。所以我想问一下,希望有人能帮我解释一下 基本上,我想做的是创建一个倒计时计时器,它将与mysql datetime一起工作 datetime存储在mysql中,所以需要做的就是在我的php中获得正确的格式,以便倒计时可以使用它 我正在使用这个插件: 以下是我目前掌握的情况: PHP格式:Php 使用jquery倒计时与mysql日期时间?,php,jquery,mysql,Php,Jquery,Mysql,我知道这个问题已经被问过很多次了,因为我在谷歌和stackoverflow上都发现了一些问题 但是他们都没有解释如何在我的php中格式化我的datetime,这样它就可以与jquery倒计时结合使用了。所以我想问一下,希望有人能帮我解释一下 基本上,我想做的是创建一个倒计时计时器,它将与mysql datetime一起工作 datetime存储在mysql中,所以需要做的就是在我的php中获得正确的格式,以便倒计时可以使用它 我正在使用这个插件: 以下是我目前掌握的情况: PHP格式: $end
$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>
并将php更改为:
$end_date = date("Y, n, j, G, i, s", strtotime($row["end_date"]));
但是,coutdown计时器中显示的时间是错误的(相差很远)
$end\u日期
在mysql日期时间中为:2013年9月22日23:30:00 GMT
但是jquery倒计时计时器显示:
34d 06:21:48
2013, 9, 22, 23, 30, 00
34天6小时的废话是绝对错误的
我现在做错了什么?JavaScript
Date
对象的构造如下:
Date(year, month, day, hours, minutes, seconds, milliseconds)
这意味着您可能应该按照以下思路做一些事情:
$end_date = date("Y, n, j, G, i, s", strtotime($row["end_date"]));
资料来源:
<script type="text/javascript">
$(document).ready(function () {
$('#defaultCountdown').countdown({
until: new Date(<?php echo $end_date; ?>),
compact: true
});
});
</script>
此外,我似乎在手册中发现了问题:
关于日期的注释—JavaScript日期构造函数预期年份,
月、日作为参数。但是,月份范围从0到11。
明确计划的日期(3个月是否意味着3月
或者四月?)我指定从1到12的月份,并手动减去
1.因此,以下表示2010年12月25日
因此,您必须拆分字符串,从月份中减去1并重建
$tmp_date = explode(', ', $end_date);
$tmp_date[1] = $tmp_date[1] - 1;
$end_date = implode(', ', $tmp_date);
指向JavaScript
Date
对象的链接构造如下:
Date(year, month, day, hours, minutes, seconds, milliseconds)
这意味着您可能应该按照以下思路做一些事情:
$end_date = date("Y, n, j, G, i, s", strtotime($row["end_date"]));
资料来源:
<script type="text/javascript">
$(document).ready(function () {
$('#defaultCountdown').countdown({
until: new Date(<?php echo $end_date; ?>),
compact: true
});
});
</script>
此外,我似乎在手册中发现了问题:
关于日期的注释—JavaScript日期构造函数预期年份,
月、日作为参数。但是,月份范围从0到11。
明确计划的日期(3个月是否意味着3月
或者四月?)我指定从1到12的月份,并手动减去
1.因此,以下表示2010年12月25日
因此,您必须拆分字符串,从月份中减去1并重建
$tmp_date = explode(', ', $end_date);
$tmp_date[1] = $tmp_date[1] - 1;
$end_date = implode(', ', $tmp_date);
链接到即使使用了这种格式,我仍然能得到
0小时,0分钟,0秒
。哇,加油,伙计,很接近,但时间已经落后1小时了。应该是5个小时,现在显示的是4个小时。我开始认为这是一个时区问题。。。如果可能的话,让SQL查询在您自己的时区中输出DateTime
。。。在我提出的一些申请中,我自己也遇到了一些关于时间/时区的问题。-我不知道你在哪个时区,但我建议:选择[…]CONVERT_TZ(结束日期,'GMT','Europe/brussel')作为结束日期[…]
或者类似的东西Europe/Brussel
可能不是适合你的时区。即使采用这种格式,我仍然能得到0小时、0分钟、0秒的时间。哇,伙计,好极了,时间差一小时了。应该是5个小时,现在显示的是4个小时。我开始认为这是一个时区问题。。。如果可能的话,让SQL查询在您自己的时区中输出DateTime
。。。在我提出的一些申请中,我自己也遇到了一些关于时间/时区的问题。-我不知道你在哪个时区,但我建议:选择[…]CONVERT_TZ(结束日期,'GMT','Europe/brussel')作为结束日期[…]
或者类似的东西欧洲/布鲁塞尔
可能不适合你。你为什么要将$end\u date
乘以1000?@MartyMcVry,不知道为什么,但我想我还是试试吧,因为什么都不起作用!删除它:-)您确定该行提取正确吗?@MartyMcVry,我已删除它。请查看我编辑的问题。倒数计时器获取正确的数据。。。您的计算机设置的日期正确吗?为什么要将$end\u date
乘以1000?@MartyMcVry,不知道为什么,但我想我还是试试吧,因为什么都没用!删除它:-)您确定该行提取正确吗?@MartyMcVry,我已删除它。请查看我编辑的问题。倒数计时器获取正确的数据。。。您的计算机设置的日期正确吗?