【问题标题】:Why is X-editable datepicker value format different?为什么 X-editable datepicker 值格式不同?
【发布时间】:2014-02-24 02:25:18
【问题描述】:

我正在使用 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 函数?非常感谢!

【问题讨论】:

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


    【解决方案1】:

    返回的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;
    },
    

    注意slices 为个位数的日期和月份添加零填充。

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 1970-01-01
      • 2018-01-15
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2018-11-05
      相关资源
      最近更新 更多