PHP 中的日期函数问题

Issue with date funciton in PHP

我有一个关于日期函数的问题,我已经把我所有的代码都放在下面了。请检查。我在我的 joomla 组件中使用了 jQuery 日历

 echo $data['startpublish'];

    $data['startpublish'] = date('Y-m-d', strtotime($data['startpublish']));
    echo "?>>>>>>>>>>>".$data['startpublish'];

    exit;

我已将我的日期存储为 mm-dd-yy 格式。当我存储 01-02-2015 时,它将以 (Y-m-d) 格式将数据存储在数据库中,当我存储 01-28-2015(1 月 28 日)时,它将转换为 1970-01-01。

请让我知道是什么问题。我也添加了两个屏幕截图。

问题 SS : http://prntscr.com/812w0c

正确的 SS :http://prntscr.com/812xbj

这是一个 strtotime 怪癖,与文本日期表示和转换中使用的 saying/writing 日期的美国不合逻辑方式有关,具有 -/. 个分隔符。

Quote from the PHP Manual,我现在想知道为什么我要去那里获取信息。

Note:

Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.

因此,要使美国日期格式 01-28-2015 正确存储,您必须将其转换为具有 / 分隔符,例如

$data['startpublish'] = str_replace('-','/', $data['startpublish']);

$data['startpublish'] = date('Y-m-d', strtotime($data['startpublish']));
echo "?>>>>>>>>>>>".$data['startpublish'];