无法从curl输出中解析日期

时间:2017-08-21 17:34:00

标签: php date curl

我在尝试解析日期时遇到问题。基本上,我试图从curl输出中解析数据。

这是我的卷曲功能:

function curlFunction(){
        $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "http://localhost/querydate.php" );
            curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $output = curl_exec($ch);
            if(curl_exec($ch) === false){
                echo "Connection Error : Please Try Again!";
            } else {
                $h_output = $output;
            }
              curl_close($ch);

        return $h_output;

}

这里是curl函数的输出:

May 23, 2017

以下是我从代码中声明的方式:

$curlOutput = curlFunction();

这是我的用于解析的PHP代码:

var_dump(date_parse_from_format('F j, Y', $curlOutput) );

这是输出:

array(12) { ["year"]=> int(2017) ["month"]=> bool(false) ["day"]=> int(23) ["hour"]=> bool(false) ["minute"]=> bool(false) ["second"]=> bool(false) ["fraction"]=> bool(false) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(3) ["errors"]=> array(2) { [0]=> string(22) "Unexpected data found." [32]=> string(13) "Trailing data" } ["is_localtime"]=> bool(false) }

除了月份之外,解析年份和日期。

任何帮助?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您的代码似乎没问题。更简化的版本是:

$curlOutput = 'May 23, 2017';

print_r(date_parse_from_format('F j, Y', $curlOutput) );

然后返回:

Array
(
    [year] => 2017
    [month] => 5
    [day] => 23
    [hour] => 
    [minute] => 
    [second] => 
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 
)

我可以在回复中正确查看年,月,日。

答案 1 :(得分:0)

为什么要这么难? 使用strtotime并使用日期来解析"它。

{{1}}

http://localhost:3000