我有一个像这样的日期时间字符串:28-06-14 11:01:00
这是欧洲的第28天,第6个月,2014年......
我正在尝试将其转换为2014-06-28 11:01:00
,以便我可以将其插入到字段类型为datetime
的数据库中。
我尝试过多种这样的事情:
$datumHolder = new DateTime($data['datum'], new DateTimeZone('Europe/Amsterdam'));
$datum1 = $datumHolder -> format("Y-m-d H:i:s");
$datum2 = date( 'Y-m-d', strtotime(str_replace('-', '/', $data['datum']) ) );
$datum3 = DateTime::createFromFormat( 'Y-m-d-:Hi:s', $data['datum']);
这是我得到的输出:
datum1: 2028-06-14 11:01:00
datum2: 1970-01-01
我收到datum3
的错误:
echo "datum3: " . $datum3->format( 'Y-m-d H:i:s'); . '<br />';
Call to a member function format() on a non-object
我做错了什么以及如何让它发挥作用?
答案 0 :(得分:3)
您的$datum3
方法是正确的,您只有无效的输入格式。
使用:
$datum3 = DateTime::createFromFormat('d-m-y H:i:s', $data['datum']);
答案 1 :(得分:3)
// $data['datum'] is '28-06-14 11:01:00'
$datetime = DateTime::createFromFormat('d-m-y H:i:s', $data['datum']);
// y is two digit representation of a year, while Y is full numeric representation of a year, 4 digits
echo $datetime->format('Y-m-d H:i:s');
答案 2 :(得分:0)
$timestamp = strtotime('28-06-14 11:01:00');
$output = gmdate("Y-m-d H:i:s", $timestamp);
echo $output;
那会给你一两个提示;)