【问题标题】:Convert a string to date from json file从 json 文件将字符串转换为日期
【发布时间】:2016-09-18 09:49:21
【问题描述】:

我想从 json 文件中获取数据以填充 postgres 空间数据库。

在json文件中,日期数据存储在:“dt_txt”:“2016-05-21 03:00:00”,我想存储2016-05-21的日期。

$json_d=file_get_contents('file.json);
$data=json_decode($json_d,TRUE);    
$date=$data['list'][0]['dt_txt'];
$dbconn = new PDO("pgsql:host=localhost; port=5432; dbname=DB", "postgres", "0000");
$insertmbr = $dbconn->prepare("INSERT INTO weather(date) VALUES(?)");
$insertmbr->execute(array($date));

当我运行代码时出现此错误

致命错误:在非对象上调用成员函数 format()

【问题讨论】:

    标签: php json postgresql


    【解决方案1】:

    您需要先将其转换为时间戳

    $date = strtotime($data['list'][0]['dt_txt']);

    然后就可以使用date方法随意格式化了:

    $date = date('Y-m-d', $date);

    您也可以使用相同的命令提取时间:

    $time = date('H:i:s', $date);

    或者,您也可以使用explode 分割空间上的字符串:

    list($date, $time) = explode(' ', $date, 2);

    【讨论】:

    • 非常感谢,时间呢?如果我想将 03:00:00 存储在另一个变量中!
    • 没问题,我已经根据您的要求更新了答案,并且还有一种更快的方法,使用explode,但不太灵活。但是请注意,最好将 strtotime 的结果存储在数据库中,因为这是一个 unix 时间戳,更易于操作。
    • 非常感谢,再次感谢它完美运行。
    猜你喜欢
    • 2016-02-23
    • 2021-07-14
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多