2016-09-16 13 views
0

ヘルプが必要です。 私はPHPを使用しています。 私は座標データを持っています。 特にLongtitudeおよびLatitudeです。 テーブルにLongとLatの15個のデータが挿入されているとします。 しかし、これらの座標が配列になっているため、apiは私に1つのdatetimeしか与えません。たとえば :特定の日時で30秒間隔を追加

[14.4364372;121.0125753, 14.4364375;121.0125755, 14.4364377;121.0125758, 14.436436;121.012574, 14.4364342;121.0125721, 14.4364326;121.0125704, 14.436433;121.0125707, 14.4364334;121.0125711, 14.4364338;121.0125716, 14.4364342;121.012572, 14.4364345;121.0125724, 14.4364348;121.0125728, 14.4364351;121.0125731, 14.4364353;121.0125733, 14.4364356;121.0125735]

だからまず、あなたがそれを爆発するが、その後、データであり、どのように多く数える再び区切り文字を爆発する「」区切り文字の そしてループそれを取り除くために 『;』与えられたlongとlatを数える。 しかし、1つのdatetimeしかありません。 ここでは、datetimeを含むが挿入ごとに30秒の間隔でこれらのデータを挿入します。 どうすればいいですか?

の予想される出力は次のようになります:

$msg= 'YC GPS2~09/16/2016 13:29:46~-~[14.4364362;121.0125744, 14.4364363;121.0125745]'; 

if(strpos($msg,'YC GPS2')!==false){ 
//explode data 
    $explode=explode('~',$msg); 
    $ky=$explode[0]; 
    $datetime=$explode[1]; 
    $ticket=$explode[2]; 
    $coords=$explode[3]; 
    $coords=explode(',',$coords); 

    for($i=0;$i<count($coords);$i++){ 
     $xpVal=$coords[$i]; 
    if($xpVal){ 

     $xp3=explode(';',$xpVal); 

    $lng=$xp3[0]; 
    $lat=$xp3[1]; 
    $lng=str_replace('[','',$lng); 
    $lat=str_replace(']','',$lat); 
    $time = date("m/d/Y h:i:s a", time() + 30);// where 30 is the seconds 
    echo "INSERT INTO GPS2(ticket,datetime,long,lat)  VALUES(".$ticket.",".$time.",".$lng.",".$lat.") "; 
    } 
    } 

}else{ 
    echo '0'; 
} 

ありがとう:

INSERT INTO table_gps(ticket,datetime,long,lat) VALUES(0,09/16/2016 03:30:26 pm, 14.4364363,121.0125745) 

INSERT INTO table_gps(ticket,datetime,long,lat) VALUES(0,09/16/2016 03:30:56 pm, 14.4364364,121.0125746) 

は、ここに私のコードです。

+0

を追加しますか?どのように見えるのだろうか?あなたは何を試しましたか? –

+0

私は実際の質問が何であるか分かりません。 datetimesとは何が関係していますか?元の日時はどこから来たのですか?それらはlong/latペアにどのように関連していますか? –

答えて

0

PHPで特定の日付にしたい秒数を追加するには、以下を使用できます。

$time = date("m/d/Y h:i:s a", time() + 30);// where 30 is the seconds 

以下は、PHPを使用して日、分、時間、秒を一度に追加する簡単な方法です。 date関数を使用して返される日付の形式を設定し、strtotimeを使用して時間の増減を追加した後、カンマの後に別のstrtotimeを使用して開始日時を渡します。

は、タイムゾーンの設定//

date_default_timezone_set('GMT'); 

// // が

タイムズがで入力することができ、変換時間

echo date('Y-m-d H:i',strtotime('+1 hour +20 minutes',strtotime($start))); 
を表示

$start = '2014-06-01 14:00:00'; 

で動作するように日付と時刻を設定します読み取り可能な方法:

  • 1日は= = 1日
  • 1時間を追加し、1時間
  • 10分を追加= 10分
  • 10秒を追加します= expecte結果が何であるかを10秒
+0

すでに試してみました.30秒を追加しますが、これはテーブルに挿入するデータと同じです。( - 、2016年9月16日午前3時49分36秒午後、14.4364362,121.0125744) INSERT INSERT INTO GPS2(チケット、日時、長い、緯度)VALUES:すでに挿入文 見てみてくださいエコーINTO GPS2(チケット、日時、緯度、経度)VALUES( - 、09/16/2016 03:49:36 pm、14.4364363,121.0125745) –

+0

日付に秒を加算したコードは何ですか?あなたの日付はどこから来ていますか?あなたが追加する日付の形式は何ですか? –

+0

私のポストを見て、そこに私のコードを加えてください。 –

関連する問題