我目前陷入困境,因为根据我的代码,数据(在JSON文件中)未正确插入MYSQL。我正在使用PHP来编写代码。
从传输网站检索的原始数据(在JSON文件中):
"d": [
{
"CreateDate": "/Date(1465439077603)/",
"Distance": 0,
"IncidentID": 13229765,
"Latitude": 1.3018178035280734,
"Longitude": 103.91129992706466,
"Message": "(9/6)10:23 Roadworks on ECP (towards Changi Airport) after Still Rd Sth Exit. Avoid lane 3.",
"Summary": null,
"Type": "Road Work",
"__metadata": {
"type": "LTAModel.Incident",
"uri": "http://datamall.mytransport.sg/LTAoDataService.svc/IncidentSet(13229765)"
}
},
正如您所见,"消息"包含3个部分 - 时间,日期,有关事件的消息。
因此,我正在使用preg_match打破"消息"开的:
$message1 =preg_match("/^\(([0-9]+.+[0-9])\)([0-9]+.[0-9]+)\s(.+\s+.+)$/",$message,$messageArray);
if(isset($messageArray['1'])){
$date = $messageArray['1'];
echo $date. "<br/>";
}
if(isset($messageArray['2'])){
$time = $messageArray['2'] ;
echo $time. "<br/>";
}
if(isset($messageArray['3'])){
$message3 = $messageArray['3'] ;
echo $message3. "<br/>";
}
我的代码格式化$ date值,因为它当前是8/6,我希望它是:2016-06-08
if(preg_replace('/\/\d/', '/3/2016', $date)){
$find = array('/\/3/', '/\/4/', '/\/5/');
$replace = array('/3/2016', '/4/2016', '/5/2016');
$result = preg_replace($find, $replace, $date);
echo $result. "<br/>";
答案 0 :(得分:1)
<?php
$input = '8/6';
$year = 2016;
$date = DateTime::createFromFormat('d/m', $input);
$dateAsIsoString = $date->format($year . '-m-d');
echo $dateAsIsoString;
如果一年总是当年,那么您可以使用format
这样:
$dateAsIsoString = $date->format('Y-m-d');
因为DateTime::createFromFormat
会根据格式自动创建具有当前年份的日期对象,如果它不在输入字符串中。