php createFromFormat 因日期选择器而失败
php createFromFormat fails with datepicker
我的表单中有以下日期选择器:
$( '.datepicker' ).datepicker({ dateFormat: 'dd-mm-yy' });
然后在我的 php 处理表单的代码中:
$campaignDate = DateTime::createFromFormat('d-m-y', $formdata['Campaign']['campaign_date']
);
if ($campaignDate) {
$campaignUnixDate = $campaignDate->getTimestamp();
} else {
$response = array(
'status' => 'FAILED',
'message' => 'Failed to create Campaign Date',
'redirect' => ''
);
echo json_encode($response);
return;
}
$campaignDate 似乎总是错误的,我假设我的 createfrom 格式错误,但我无法解决问题。
解决方案
使用大写 Y
而不是小写 y
$campaignDate = DateTime::createFromFormat(
'd-m-Y',
$formdata['Campaign']['campaign_date']
);
说明
日期格式不匹配
$( '.datepicker' ).datepicker({ dateFormat: 'dd-mm-yy' });
会return
18-07-2015
而
$campaignDate = DateTime::createFromFormat(
'd-m-y',
$formdata['Campaign']['campaign_date']
);
使用格式
18-07-15
来自 PHP 文档:
Y
A full numeric representation of a year, 4 digits
Examples: 1999 or 2003
y
A two digit representation of a year (which is assumed to be in the range 1970-2069, inclusive)
Examples: 99 or 03 (which will be interpreted as 1999 and 2003, respectively)
我的表单中有以下日期选择器:
$( '.datepicker' ).datepicker({ dateFormat: 'dd-mm-yy' });
然后在我的 php 处理表单的代码中:
$campaignDate = DateTime::createFromFormat('d-m-y', $formdata['Campaign']['campaign_date']
);
if ($campaignDate) {
$campaignUnixDate = $campaignDate->getTimestamp();
} else {
$response = array(
'status' => 'FAILED',
'message' => 'Failed to create Campaign Date',
'redirect' => ''
);
echo json_encode($response);
return;
}
$campaignDate 似乎总是错误的,我假设我的 createfrom 格式错误,但我无法解决问题。
解决方案
使用大写 Y
而不是小写 y
$campaignDate = DateTime::createFromFormat(
'd-m-Y',
$formdata['Campaign']['campaign_date']
);
说明
日期格式不匹配
$( '.datepicker' ).datepicker({ dateFormat: 'dd-mm-yy' });
会return
18-07-2015
而
$campaignDate = DateTime::createFromFormat(
'd-m-y',
$formdata['Campaign']['campaign_date']
);
使用格式
18-07-15
来自 PHP 文档:
Y
A full numeric representation of a year, 4 digits
Examples: 1999 or 2003y
A two digit representation of a year (which is assumed to be in the range 1970-2069, inclusive) Examples: 99 or 03 (which will be interpreted as 1999 and 2003, respectively)