我的日期是20/12/2001。我需要使用php转换为以下格式2001/12/20。
答案 0 :(得分:3)
$var = explode('/',$date);
$var = array_reverse($var);
$final = implode('/',$var);
答案 1 :(得分:2)
你最安全的赌注
<?php
$input = '20/12/2001';
list($day, $month, $year) = explode('/',$input);
$output= "$year/$month/$day";
echo $output."\n";
根据需要/期望添加验证。您输入的日期不是已知的有效日期格式,因此strToTime将无效。
答案 2 :(得分:1)
如果您从其他地方获取日期字符串(而不是自己生成)并需要重新格式化:
$date = '20/12/2001';
preg_replace('!(\d+)/(\d+)/(\d+)!', '$3/$2/$1', $date);
如果您需要将日期用于其他目的并且正在运行PHP&gt; = 5.3.0:
$when = DateTime::createFromFormat('d/m/Y', $date);
$when->format('Y/m/d');
// $when can be used for all sorts of things
答案 3 :(得分:1)
您需要手动解析它。
"/"
上分割/分割文字。[0]
,[1]
中的月份和[2]
中的一年中进行其他基本检查(这主要意味着检查他们的数字和正确的范围)答案 4 :(得分:0)
$today = date("Y/m/d");
我相信这应该有用......如果我错了,有人会纠正我。
答案 5 :(得分:0)
您可以使用sscanf来解析和重新排序日期的各个部分:
$theDate = '20/12/2001';
$newDate = join(sscanf($theDate, '%3$2s/%2$2s/%1$4s'), '/');
assert($newDate == '2001/12/20');
或者,如果您使用的是PHP 5.3,则可以使用DateTime对象进行转换:
$theDate = '20/12/2001';
$date = DateTime::createFromFormat('d/m/Y', $theDate);
$newDate = $date->format('Y/m/d');
assert($newDate == '2001/12/20');
答案 6 :(得分:0)
$date = Date::CreateFromFormat('20/12/2001', 'd/m/Y');
$newdate = $date->format('Y/m/d');