2
我在將格式化日期字符串轉換爲整數時間戳時遇到問題。我使用日期選擇器來輸入一個字段,如DD/MM/YY
,我使用strtotime
來更改它。strtotime()在格式化日期時拋出false
用法示例
$date_from = (!empty($_POST['datefrom'])) ? (string) $db->sql_escape($_POST['datefrom']) : false;
$date_to = (!empty($_POST['dateto'])) ? (string) $db->sql_escape($_POST['dateto']) : false;
$time_from = (!empty($_POST['timefrom'])) ? (string) $db->sql_escape($_POST['timefrom']) : '';
$time_to = (!empty($_POST['timeto'])) ? (string) $db->sql_escape($_POST['timeto']) : '';
轉儲
var_dump($_POST);
var_dump($date_from . ' ' . $time_from);
var_dump($date_to . ' ' . $time_to);
輸出
array(4) {
["datefrom"]=>
string(10) "23/03/2011"
["dateto"]=>
string(10) "18/04/2011"
["timefrom"]=>
string(5) "01:26"
["timeto"]=>
string(5) "04:44"
}
string(16) "23/03/2011 01:26"
string(16) "18/04/2011 04:44"
現在你可以看到每個瓦里能是不是空的,現在什麼也不返回(除false
)使用strtotime
當這樣的:
$range_from = strtotime($date_from . ' ' . $time_from);
$range_to = strtotime($date_to . ' ' . $time_to);
var_dump($range_from);
var_dump($range_to);
輸出
bool(false)
bool(false)
現在這就是我堅持以爲它爲什麼不轉換DD/MM/YY HH:MM
到一個時間戳,我幾乎無法找到它有什麼問題...
這是一個跆拳道,爲什麼不默認系統標準? – alimack 2017-06-06 15:10:46
默認爲系統標準會更成問題,因爲這意味着在一個系統上運行的代碼會在下一個系統中崩潰 – Yexo 2017-06-09 14:06:49