2012-10-13 182 views
0

我正在使用jquery日期選擇器,並且還通過php日期('Y-m-D')函數設置日期。他們兩人今天給出了不同的日期。 jquery選擇器填滿php日期前一天的日期()。這裏是jQuery的函數。我需要jQuery來顯示今天的相同日期爲php。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> 

回答

1

jQuery在php使用服務器的日期時使用客戶端計算機的日期。如果你沒有在php中設置默認時區,它們基本上是不同的。看看這個: http://php.net/manual/en/function.date-default-timezone-set.php

您可以設置(如PHP5.4)

由於服務器的日期中的使用位於PHP主目錄下的php.ini文件的默認時區日期選擇:

一個快速谷歌搜索導致我這樣的:how to display server side dates in jquery datepicker? 基本上他們做了什麼根據當前時間戳是創建一個新日期:

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

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

有沒有一個我可以使日期選擇器使用PHP日期,像回聲日期( );在上面的代碼中的某處? –

+0

我已經更新了答案。 –

1

不要相信客戶的日期和時間

這些值可以隨意改變。

只是在勸告上使用它們。

除了Javascript之外,還有增強用戶體驗(即使它更具交互性)。但在一天結束時,你將不得不拿起你沒有驗證的部分,並驗證你從客戶端獲得的數據

+0

我如何在上面的代碼中使用php date()? –

+0

@AmnaAhmed - 您在客戶端瀏覽器中對其用戶體驗有一點信任。即使用他們的日期。但不要太信任它 - 當這些選擇到達服務器(即你的php腳本)時,請驗證它並進行驗證。 –