2017-09-30 12 views
0

私のコードでは、日付/時刻を<td>からのみ抽出し、Unixのタイムスタンプに変換したいのですが、preg_match_all()$result[0]または$result[1]を使用しても何も表示されません。私はなぜ知らないが、私は私が得た配列をダンプするときの結果、以下:PHP preg_match​​内の日付/時刻を抽出してUnix時刻に変換する

私のアレイは、ここで

Array 
(
    [0] => Array 
     (
      [0] => <td align="left" valign="top">02 April 2017 | 05:55 PM</td> 
     ) 

    [1] => Array 
     (
      [0] => 02 April 2017 | 05:55 PM 
     ) 

) 

は私のPHPコードは

preg_match_all('/<td align="left" valign="top">([^"]*)<\/td>/', $printtable, $result); 
var_dump($result); 
+0

が、それは完璧に動作しましたが、どのように私はunixtimeに時間を変換することができますか? – Rtra

+0

PHP関数 'date_parse_from_format'を見てほしいかもしれません – bezet

+0

完璧になると確信してください – Rtra

答えて

1

preg_match_allで多次元配列ではなく、返します単一要素配列preg_matchのように。キャプチャグループは$result[1][0]です(1インデックスが最初のキャプチャグループです。他のすべてのインデックスは追加のキャプチャグループです)。文字列をunix時間に変換するには、strtotimestr_replaceを使用できます(strtotimeが処理できる形式にするには、preg_replaceを使用し、英数字以外のすべての空白文字を取り除くこともできます)。

echo strtotime(str_replace('|', '', '02 April 2017 | 05:55 PM')); 

デモ:chris85 @https://3v4l.org/MsOlv

関連する問題