使用php将dd / mm / yy日期格式更改为yy / mm / dd

时间:2010-10-27 23:51:49

标签: php

我的日期是20/12/2001。我需要使用php转换为以下格式2001/12/20。

7 个答案:

答案 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将无效。

或者,您可以使用mktime创建日期,月份和年份的日期,然后使用date对其进行格式化。

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

您需要手动解析它。

  1. "/"上分割/分割文字。
  2. 检查您有三个要素。
  3. [0][1]中的月份和[2]中的一年中进行其他基本检查(这主要意味着检查他们的数字和正确的范围)
  4. 再把它们放在一起。

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