データベースから取得した時刻の形式を変更する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
m-d-Y
dates
だから私の質問は、なぜstrtotime()
私の月と日を逆にするのですか、そしてなぜそれはすべての日付を認識しないのですか?これを行うためのより良い方法はありますか?