當我從網站檢索天氣結果時,日期和時間將以字符串形式顯示。對於例如, 「日期」: 「星期四,2016年6月16日上午09時00 SGT」使用substr_replace和str_replace從要插入到db的輸入中檢索特定格式的日期和時間
我要提取的
時間(09:00),以便它能夠被插入到在TIME()格式的分貝(HH:MM:SS)
日期(星期四,2016年6月16日),以便它可以插入到分貝之前被轉換成YYYY-MM-DD。我根本不需要那一天。
//連接到MySQL分貝
$ CON =的mysql_connect( 「127.0.0.1」, 「管理員」, 「密碼」)或死亡( '無法連接:' mysql_error());
//連接到氣象數據庫
mysql_select_db( 「天氣」,$ CON); ('Asia/Singapore');
date_default_timezone_set('Asia/Singapore'); //date.timezone = 「ETC // GMT-8」
//讀取JSON文件內容
$ jsondata =的file_get_contents( 'weather.json');
//轉換JSON對象到PHP關聯數組
$數據= json_decode($ jsondata,TRUE);
這裏是我的代碼,以確定當天:
$day=array();
$day[0]="mon";
$day[1]="tue";
$day[2]="wed";
$day[3]="thurs";
$day[4]="fri";
$day[5]="sat";
$day[6]="sun";
//檢索出YYYY-MM-DD的格式
$date = $data['query']['results']['channel']['item']['condition']['date'];
$newdatefront = str_replace($day, '', $date);
$newdateback = substr_replace($newdatefront, '', 12,30);
$dateformat = date('Y-m-d', strtotime(str_replace('-', '/', $newdateback)));
//檢索時間日期(09:00)要插入db
$time = $data['query']['results']['channel']['item']['condition']['date'];
$newtimefront = substr_replace($date,'',0,17);
$newtimeback = str_replace(' SGT','',$newtimefront);
$timeformat = str_replace('AM','',$newtimeback);
我們ather.json(其中的結果是提取形成的網站後)
{
"query": {
"count": 1,
"created": "2016-06-16T02:07:59Z",
"lang": "en-US",
"results": {
"channel": {
"item": {
"condition": {
"code": "4",
"date": "Thu, 16 Jun 2016 09:00 AM SGT",
"temp": "81",
"text": "Thunderstorms"
}
}
}
}
}
}
然而,當我試圖運行代碼,它提示我「錯誤:不正確的時間值:09: 00 AM'列1'列'時間'
時間是我的數據庫中的列的名稱,迄今爲止我只有1條記錄。
爲什麼'substr_replace'和'str_replace' ???使用日期時間和格式來獲取轉換後的拆分日期和時間。 –
如果你有PHP 5.3+(你應該)閱讀如何在這裏使用'DateTime :: createFromFormat' https://secure.php.net/manual/en/datetime.createfromformat.php – techouse