JQuery和PHP的日期差异

时间:2012-10-13 14:22:51

标签: php jquery

我正在使用jquery日期选择器,并通过php日期('Y-m-D')函数设置日期。它们都为今天提供了不同的日期。 Jquery选择器填充字段的日期比php date()提前一天。这是jquery的功能。我需要jquery今天显示与php相同的日期。

<script type="text/javascript" charset="utf-8">
        var $j = jQuery.noConflict();                   
         $j(function()
            {

                // initialise the "Select date" link
                $j('#date-pick')
                    .datePicker(
                        // associate the link with a date picker
                        {
                            createButton:false,
                            startDate: '01/01/1970',
                            endDate: (new Date()).asString()
                            //endDate:<?php echo date('y-m-d'); ?>
                        }
                    ).bind(
                        // when the link is clicked display the date picker
                        'click',
                        function()
                        {
                            updateSelects($j(this).dpGetSelected()[0]);
                            $j(this).dpDisplay();
                            return false;
                        }
                    ).bind(
                        // when a date is selected update the SELECTs
                        'dateSelected',
                        function(e, selectedDate, $td, state)
                        {
                            updateSelects(selectedDate);
                        }
                    ).bind(
                        'dpClosed',
                        function(e, selected)
                        {
                            updateSelects(selected[0]);
                        }
                    ).val(new Date().asString()).trigger('change');

                var updateSelects = function (selectedDate)
                {
                    var selectedDate = new Date(selectedDate);
                    if(selectedDate != "Invalid Date")
                    {
                    $j('#d').val(selectedDate.getDate());
                    $j('#m').val(selectedDate.getMonth()+1);
                    $j('#y').val(selectedDate.getFullYear());
                    }
                }
                // listen for when the selects are changed and update the picker

                // default the position of the selects to today
                var today = new Date();
                updateSelects(today.getTime());

            });
        </script>

2 个答案:

答案 0 :(得分:1)

jQuery使用客户端计算机的日期,而php使用服务器的日期。如果你没有在php中设置默认时区,它们基本上是不同的。看看这个: http://php.net/manual/en/function.date-default-timezone-set.php

您可以在PHP主目录中的php.ini文件中设置默认时区(例如PHP5.4)

至于在datepicker中使用服务器的日期:

快速谷歌搜索引导我:how to display server side dates in jquery datepicker? 基本上他们所做的就是根据当前时间戳创建一个新日期:

$timestamp = strtotime("2012-08-02");

minDate: new Date('<?php echo $timestamp; ?>');

答案 1 :(得分:1)

不要信任客户的日期和时间

可以随心所欲地改变这些值。

只需在建议中使用它们。

除了Javascript之外,还可以增强用户体验(即使其更具互动性)。但是在一天结束时,您将不得不拿起您未验证的部分并验证从客户端获得的数据