php将欧洲日期时间转换为mysql datetime

时间:2014-06-04 09:22:11

标签: php sql datetime

我有一个像这样的日期时间字符串: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

我做错了什么以及如何让它发挥作用?

3 个答案:

答案 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;

那会给你一两个提示;)