我有一些 php 可以更改从数据库中检索到的时间格式:
$selectedDate = $_GET['date'];
$formatedDate = date("Y-d-m",strtotime($selectedDate)); // Y-m-d outputs Y-d-m oddly
echo "<form name='selectedDate' action='info.php' method='GET'>";
echo "<select name='date' onchange='this.form.submit()'>";
echo "<option value=select>Select a Date</option>";
while ($row = mysql_fetch_array($result))
{
$date = date("m-d-Y",strtotime($row['date']));
echo "<option>" . $date . "</option>";
}
echo "</select>";echo "<br />";
echo $selectedDate; // 1.) in: 02-13-2013, 2.) in: 02-12-2013
echo "<br />";
echo $formatedDate; // 1.) out: 1970-01-01, 2.) out: 2013-02-12
echo "<br />";
echo date("Y-m-d");
echo "<noscript>";
echo "<input type='submit' value='Select'>";
echo "</noscript>";
echo "</form>";
现在,对于$formatedDate
,如前所述,如果我Y-m-d
用于输出,我得到2013-12-02
的不是2013-02-12
. 更不用说,即使所有$selectedDate
's 在m-d-Y
格式化之前都在,它也不会将它们识别为dates
. 我有一种感觉,我错过了一些完全愚蠢的东西,但我就是看不到它。
所以我的问题是,为什么strtotime()
我的月份和日期会颠倒过来,为什么它不能识别所有日期?有没有更好的方法来完成这项工作?