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'];
我有一个关于日期函数的问题,我已经把我所有的代码都放在下面了。请检查。我在我的 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'];