2017-09-22 38 views
1

我想問。將唯一字符串轉換爲時間戳

我從html獲取數據時間,並嘗試插入到我的數據庫。 插入格式如「8:16:25 PM 8/8 /2017Â」。 我如何轉換爲時間戳格式,因爲我想將其範圍。 我嘗試在插入前剪切字符串並將其設置爲utf8_decode或utf8_encode。但是當我不能獲得時間時。對不起我的英語不好。

CODE:

$first = array('PM','/','AM'); 
$first2 = array('','-',''); 
$strreplacebegdate = str_replace($first,$first2, $tujuh); 
$substrreplacebegdate1 = substr($strreplacebegdate,14,9); 
$re = array(' ','?'); 
$re2 = array('',''); 
$strreplacebegdatelagi = str_replace($re,$re2, $substrreplacebegdate1); 
$substrreplacebegdate2 = substr($strreplacebegdate,6,7); 
$consubstringbegdate = $substrreplacebegdate1." ".$substrreplacebegdate2; 
$timeenddate = strtotime($strreplacebegdatelagi); 
$newformatbegdate = date('Y-m-d',$timeenddate); 

輸出:0000-00-00 00:00:00

+0

我不明白你在這裏的問題是什麼?你想清理特殊字符* *或者你想計算兩個日期之間的差異? –

+0

對不起,我的問題是如何清理並將其轉換爲日期時間.. –

回答

1

它更喜歡你清理你的日期字符串。在這種情況下,您可以使用正則表達式,只允許特定字符通過,並刪除所有其他特殊字符和隱藏字符。

$dirty_date = 'Â Â 8:16:25 PM 8/8/2017Â Â'; 
echo $date = preg_replace("/[^0-9a-zA-Z \/:\-]/", "", $dirty_date); 
echo "\n"; 
echo $xtime = strtotime($date); 
echo "\n"; 
echo date("Y-m-d H:i:s",$xtime); 
+0

哇,它的工作,謝謝你Shoaib Zafar。你幫助我。非常感謝 –

+0

我的榮幸....也許upvote如果它對你有幫助。 –

0

不能使用strtotime()這一點。因爲你的日期格式不同。你可以這樣做。

$str_time = 'Â Â 8:16:25 PM 8/8/2017Â Â'; 
$date = DateTime::createFromFormat('Â Â h:i:s a d/m/YÂ Â', $str_time); 
$timestamp = $date->getTimestamp(); 

閱讀關於createFromFormat()的更多信息。訪問這個http://php.net/manual/en/datetime.createfromformat.php。我希望這有助於

+0

感謝之前,如何清理字符.. –

+0

我編輯了我的答案。它也將與特殊字符一起工作。 Upvote如果有幫助。 –

相關問題