Php时间格式转换

时间:2011-08-10 17:13:48

标签: php datetime-conversion

我有以下时间格式:15/08/2011 12:32:23日/月/年小时:分:秒我希望转换为以下格式:Y-m-d H:i:s

我尝试使用date('Y-m-d H:i:s', strtotime($time)),但它不起作用。它交换了从字符串转换为datenum的月份和日期。

4 个答案:

答案 0 :(得分:2)

strtotime了解美国(mm/dd/YYYY)和欧洲(dd-mm-YYYY or dd.mm.YYYY)格式。您使用斜杠分隔日,月和年,这就是为什么您的日期被解释为美国。要解决这个问题,请用破折号替换斜杠。

答案 1 :(得分:0)

在这种情况下,您可以简单地从字符串中交换月份和日期:

$time_string = "15/08/2011 12:32:23";
$strtotime = explode("/",$time_string);
$strtotime = implode("/",array($strtotime[1], $strtotime[0], $strtotime[2]));
echo date('Y-m-d H:i:s', strtotime($strtotime));

工作示例:http://codepad.viper-7.com/234toO

答案 2 :(得分:0)

你将不得不重新安排时间。 strtotime认为您正在尝试以'm/d/Y H:i:s'的格式输入字符串,但您提供的是'd/m/Y H:i:s'

list($date, $times) = explode(' ', $time);
list($day, $month, $year) = explode('/', $date);
$newTime = date('Y-m-d H:i:s', strtotime("$month/$day/$year $times");

答案 3 :(得分:0)

在日期中用连字符替换斜杠,然后尝试使用。

$a = '07/08/2019'; // 07 is day 08 is month.
echo date('Y-m-d', strtotime($a)); //output: 2019-07-08 where 07 became month.
$a = str_replace("/","-","07/08/2019"); // 07-08-2019
echo date('Y-m-d', strtotime($a)); //2019-08-07