为什么X-editable datepicker值格式不同?

时间:2014-02-24 02:25:19

标签: javascript php date date-format x-editable

我正在使用 X-editable extension 来验证日期输入:

$('.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
    }
}
Chrome日志以yyyy / mm / dd格式显示日期(例如2014-24-02) 但是在JavaScript中的验证代码中;当我尝试输出日期时。它的格式不同,返回字符串输出某种:

  

值是Sun Jun 29 2014 08:00:00 GMT + 0800(马来半岛标准   时间)

我需要做一些验证代码,但我需要以 yyyy / mm / dd 格式进行验证。为什么日期格式在验证和提交方面有所不同?如果我如何将日期字符串转换为我需要的格式?这有一个php / javascript函数吗?非常感谢!

1 个答案:

答案 0 :(得分:3)

返回的valueJavaScript Date instance。您应该能够使用Date方法以其他格式访问日期,例如:

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为单位数天和月添加零填充。