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)

http://php.net/manual/en/datetime.createfromformat.php