2017-09-22 36 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如果有帮助。 –

相关问题