利用可能なフォーマットがある場合は、strtotime()
を避けるべきであると強く信じています。
$from_format = 'Y-m-d H:i:s';
$to_format = 'd M, Y h:i:s A';
$date = '2016-11-11 14:26:03';
echo DateTime::createFromFormat($from_format, $date)->format($to_format);
出力:
11 Nov, 2016 02:26:03 PM
あなたのコードは、私はそれがここ罰金に動作しますが、あなたは少しを診断することができ、特定のために言うことができない障害が発生したのはなぜ。私はあなたのケースではが変換に失敗したので、実際には0000-00-00 00:00:00
ですが、0
になることはできませんので、計算は0000-00-00 00:00:00
マイナス1日1ヶ月ですなどが30 Nov -0001 12:00:00
であるため、$obj->suspend_datetime
に正しいデータが含まれていないように見えます。私はそれを処理するために、この全体の試練が容易になるだろう共有するために2つの小さな機能を書いている
:strtounixtime()
を使用して、あなたのシナリオでは
function strtodatetime($date, $format = 'Y-m-d H:i:s'){
return ($d = DateTime::createFromFormat($format, $date)) && $d->format($format) == $date ? $d : false;
}
function strtounixtime($date, $format = 'Y-m-d H:i:s'){
return ($d = DateTime::createFromFormat($format, $date)) && $d->format($format) == $date ? $d->getTimestamp() : 0;
}
echo ($dt = strtodatetime($date)) ? $dt->format($to_format) : 'invalid format';
echo date('d M, Y h:i:s A', strtounixtime($obj->approve_datetime));
を、それが戻って翻訳します(strtotime()
良い)へunix epochに失敗した場合。
このhttp://php.net/manual/en/function.date.php#refsect1-function.date-parameters – Karthi
データベースとSQLの間の異なるデフォルトフォーマット –