0

我正在使用 jquery 日期选择器,并通过 php date('YmD') 函数设置日期。他们都给今天不同的日期。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>
4

2 回答 2

1

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

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

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

一个快速的谷歌搜索让我知道:如何在 jquery datepicker 中显示服务器端日期? 基本上他们所做的是根据当前时间戳创建一个新日期:

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

minDate: new Date('<?php echo $timestamp; ?>');
于 2012-10-13T14:35:34.143 回答
1

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

这些值可以随意更改。

只是在建议时使用它们。

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

于 2012-10-13T14:40:01.937 回答