PHP获取每个preg_match的日期时间

Kho*_*oly 0 php regex datetime

我想从格式的字符串中获取DateTime 'YYYY-MM-DD hh:mm:ss.

要清除:我从API获取一个字符串,到现在为止字符串如下所示:

{ts '2014-09-02 14:42:49'}
Run Code Online (Sandbox Code Playgroud)

但是字符串可以改变,所以我不会只将字符串缩短到那DateTime就是为什么我想通过RegEx接收它.因为字符串可以根据需要进行更改,只要日期格式保持不变,我就会得到正确的结果.

我发现这个问题有一个解决方案,并尝试将它用于我的情况.RegEx是这样的:

$regEx = "(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})";
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

$regEx = "(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})";
Run Code Online (Sandbox Code Playgroud)

它正在regexr.com上工作,但我不能让它来处理我的PHP代码.

整个代码是这样的:

        $result = array();
        $regEx = "(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})";
        preg_match($details['date'], $regEx, $result);
        var_dump($result);
Run Code Online (Sandbox Code Playgroud)

但是var_dump提供了一个空阵列.

我如何定义RegEx以便它正在使用preg_match

xda*_*azz 5

PHP正则表达式需要delimiters,而且参数的顺序preg_match也是错误的.

$regEx = '/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/';
preg_match($regEx, $details['date'], $result);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)

如果$details['date']只是日期时间格式字符串,您可以考虑使用DateTime类.

$datetime = new DateTime($details['date']);
Run Code Online (Sandbox Code Playgroud)