将字符串转换为日期(欧洲到美国)

时间:2017-01-10 14:30:38

标签: php date format date-conversion

我在表格上有一个字符串:" dd / mm-yyyy",其中dd是两个数字的月份,mm是用两位数表示的月份,而yyyy是年份四位数。

我需要将它存储在我的数据库中。我试过了

$dato = date('d/m-Y' ,strtotime($_POST['dag'] )

但这显然不起作用。在我的数据库中,日期显示为yyyy-mm-dd。如何正确地将String转换为正确的格式?

3 个答案:

答案 0 :(得分:5)

strtotime不接受您的时间字符串格式,因此返回false。您可以使用DateTime::createFromFormatdate_create_from_format,手动here

DateTime::createFromFormat('d/m-Y', $_POST['dag']);

检查live demo

<?php

var_dump(DateTime::createFromFormat('d/m-Y', '11/01-2017'));

putput:

object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2017-01-11 14:34:53.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "UTC"
}

答案 1 :(得分:0)

尝试将/替换为-,如下所示:

$date = "02/04-2016";
$dateNew = str_replace("/","-",$date);

答案 2 :(得分:0)

您可以使用DateTime::createFromFormat

$time = '12/3-1987';
$data = DateTime::createFromFormat('d/m-Y', $time);
echo $data->format('Y-m-d'); //1987-03-12

sandbox