2014-02-24 33 views
1

我使用X編輯擴展用於與驗證的日期輸入:爲什麼X可編輯的日期選擇器值格式不同?

$('.editable-date').editable({ 
     type: 'date', 
     pk:1, 
     params: function(params){ 
      params.dataId = dataId; 
      return params; 
     }, 
     validate : function(value){ 
      return "value is "+value; //validation 
     }, 
     url: '<?php echo Yii::app()->createAbsoluteUrl("/rga/controller/update"); ?>', 
     success: function(response){ 

     } 
    }); 

和在控制器爲提交:

public function actionUpdate(){ 
    if(isset($_POST['value'])){ 
     $dataId = $_POST['dataId']; 
     $value = $_POST['value']; 
     ChromePhp::log($value); //output value to console  
    //some code here 
    } 
} 

鉻日誌顯示在YYYY日期/ mm/dd格式(示例2014-24-02) 但在JavaScript中的驗證代碼中;當我嘗試輸出日期。它在不同的格式,返回的字符串輸出某種:

值是Sun 2014年6月29日08:00:00 GMT + 0800(馬來半島標準 時間)

我需要做一些驗證的代碼,但我需要在yyyy/mm/dd格式中執行。爲什麼日期格式在驗證和提交時有所不同?如果有的話,我如何將日期字符串轉換爲我需要的格式?有沒有一個PHP/JavaScript的功能呢?非常感謝!

回答

3

返回的valueJavaScript Date instance。您應該能夠使用日期的方法來訪問的日期以另一種格式,例如:

validate : function(value){ 
    var month = ("0" + (value.getMonth()+1).toString()).slice(-2); // The getMonth() method returns the month (from 0 to 11) for the specified date 
    var day = ("0" + value.getDate().toString()).slice(-2); 
    var year = value.getFullYear().toString(); 
    var date = month + "/" + day + "/" + year; 
}, 

注意slice s到加零填充單位數天或數月。

+0

喜歡這片。 – Lutsen

相關問題