我在表格上有一个字符串:" dd / mm-yyyy",其中dd是两个数字的月份,mm是用两位数表示的月份,而yyyy是年份四位数。
我需要将它存储在我的数据库中。我试过了
$dato = date('d/m-Y' ,strtotime($_POST['dag'] )
但这显然不起作用。在我的数据库中,日期显示为yyyy-mm-dd。如何正确地将String转换为正确的格式?
答案 0 :(得分:5)
strtotime不接受您的时间字符串格式,因此返回false。您可以使用DateTime::createFromFormat
或date_create_from_format
,手动here。
DateTime::createFromFormat('d/m-Y', $_POST['dag']);
<?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