Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jquery倒计时与mysql日期时间?_Php_Jquery_Mysql - Fatal编程技术网

Php 使用jquery倒计时与mysql日期时间?

Php 使用jquery倒计时与mysql日期时间?,php,jquery,mysql,Php,Jquery,Mysql,我知道这个问题已经被问过很多次了,因为我在谷歌和stackoverflow上都发现了一些问题 但是他们都没有解释如何在我的php中格式化我的datetime,这样它就可以与jquery倒计时结合使用了。所以我想问一下,希望有人能帮我解释一下 基本上,我想做的是创建一个倒计时计时器,它将与mysql datetime一起工作 datetime存储在mysql中,所以需要做的就是在我的php中获得正确的格式,以便倒计时可以使用它 我正在使用这个插件: 以下是我目前掌握的情况: PHP格式: $end

我知道这个问题已经被问过很多次了,因为我在谷歌和stackoverflow上都发现了一些问题

但是他们都没有解释如何在我的php中格式化我的datetime,这样它就可以与jquery倒计时结合使用了。所以我想问一下,希望有人能帮我解释一下

基本上,我想做的是创建一个倒计时计时器,它将与mysql datetime一起工作

datetime存储在mysql中,所以需要做的就是在我的php中获得正确的格式,以便倒计时可以使用它

我正在使用这个插件:

以下是我目前掌握的情况:

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>
并将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,我已删除它。请查看我编辑的问题。倒数计时器获取正确的数据。。。您的计算机设置的日期正确吗?