0

この日付と時刻の文字列があります

2013-10-21 09:49:51 2013-10-22 10:23:06 2013-10-22 10:23:20 2013-10-22 10:33:34 2013-10-22 10:33:40 2013-10-23 15:14:04 2013-10-23 15:14:09 2013-10-23 15:15:04 2013-10-23 15:26:18 2013-10-23 15:27:26 2013-10-23 15:27:29 2013-10-23 15:37:16 2013-10-23 15:45:08 2013-10-23 15:47:19 2013-10-23 16:05:37 2013-10-23 16:23:28 2013-10-23 16:31:09 2013-10-23 16:32:08 2013-10-23 16:32:54 2013-10-23 17:11:28 2013-10-23 17:12:24 2013-10-23 17:12:33 2013-10-23

を使用して文字列を配列に処理するのに役立つものが必要preg_matchです。

予想される出力配列の例:

datetimeArr=array(0=>'2013-10-21 09:49:51',1=>'2013-10-22 10:23:06',2=>'2013-10-23 15:45:08')
4

5 に答える 5

1

また、正規表現を使用する必要がある場合:

.{10}\s.{8}
于 2013-10-25T07:53:11.407 に答える
0

本当に正規表現を使用する必要がある場合、最も簡単な方法は次のとおりです。

preg_match_all('/(.{19})\s?/', $input, $result);
$result = $result[1];

それ以外の場合は、正規表現はこのタスクにはやり過ぎなので、この 1 行のソリューションを使用することをお勧めします。

$result = array_map('trim', str_split($input, 20));
于 2013-10-25T08:11:48.923 に答える
0
$input = '2013-10-21 09:49:51 2013-10-22 10:23:06 2013-10-22 10:23:20 2013-10-22 10:33:34 2013-10-22 10:33:40 2013-10-23 15:14:04 2013-10-23 15:14:09 2013-10-23 15:15:04 2013-10-23 15:26:18 2013-10-23 15:27:26 2013-10-23 15:27:29 2013-10-23 15:37:16 2013-10-23 15:45:08 2013-10-23 15:47:19 2013-10-23 16:05:37 2013-10-23 16:23:28 2013-10-23 16:31:09 2013-10-23 16:32:08 2013-10-23 16:32:54 2013-10-23 17:11:28 2013-10-23 17:12:24 2013-10-23 17:12:33 2013-10-23';

preg_match_all('/\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}/', $input, $output_array);
var_dump($output_array);
于 2013-10-25T08:07:57.900 に答える
0

RegExでそれを楽しんでください。2013 の位置で文字列を分解するだけです。その後、簡単に配列に追加できます。

于 2013-10-25T07:48:54.217 に答える
0

ここで正規表現を使用する必要はありませんstr_split。チャンクは固定長であるため、使用するだけです。

$dtStrings = "2013-10-21 09:49:51 2013-10-22 10:23:06 2013-10-22 10:23:20 2013-10-22 10:33:34 2013-10-22 10:33:40 2013-10-23 15:14:04 2013-10-23 15:14:09 2013-10-23 15:15:04 2013-10-23 15:26:18 2013-10-23 15:27:26 2013-10-23 15:27:29 2013-10-23 15:37:16 2013-10-23 15:45:08 2013-10-23 15:47:19 2013-10-23 16:05:37 2013-10-23 16:23:28 2013-10-23 16:31:09 2013-10-23 16:32:08 2013-10-23 16:32:54 2013-10-23 17:11:28 2013-10-23 17:12:24 2013-10-23 17:12:33 2013-10-23";

$dtArray = str_split($dtStrings, 20);

もちろん、各要素には末尾の空白文字があります (おそらく最後のものを除く)。これを削除するrtrimには、要素で実行されている配列をループするだけです。

$dtArray = array_map('trim', str_split($dtStrings, 20));
于 2013-10-25T07:49:08.780 に答える