我正在使用 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函数吗?非常感谢!
答案 0 :(得分:3)
返回的value
是JavaScript 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
为单位数天和月添加零填充。