php反向日期功能

时间:2012-10-23 12:57:06

标签: php

我想知道是否有人知道如何在PHP中反转日期功能。 例如..如果我想打印我会做的日/月/年/时间:

date("d jS M, Y", strtotime("2012-01-01 12:12:12"));

如果我在2012年1月1日星期六中午12点12分 - 是否有办法将其反转为输出“2012-01-01 12:12:12”。

提前致谢。

4 个答案:

答案 0 :(得分:5)

试试这个

这个问题的真正答案我的意思是http://www.php.net/manual/en/datetime.createfromformat.php

<?php
$date = date_create_from_format('j-M-Y', '15-Oct-2012');
echo date_format($date, 'Y-m-d'); 
?>

答案 1 :(得分:1)

看看PHP的DateTime class。它比旧式date()功能灵活得多,而且是朋友。

在您的情况下,听起来您需要DateTime::createFromFormat()。如果您有一个已知格式的输入日期字符串,则此函数非常有用。使用旧样式strtotime()函数,您无法指定格式,因此必须自行解决(在某些情况下,它会错误地猜到)。

此示例来自手册页:

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

createFromFormat接受的格式字符串与您所知道的格式字符串相同,并且喜欢旧的date()函数,因此如果您想要输出格式,那么请确定您的格式。我会有解决方案。

因此,根据您在问题中指定的格式,您可以写下:

$inputDateString = "Sat 1st January, 2012 12.12pm";
$dateObject = DateTime::createFromFormat("D jS M, Y h.ia",$inputDateString);
print $dateObject->format('Y-m-d H:i:s');

这将输出2012-01-01 12:12:00

希望有所帮助。

答案 2 :(得分:0)

strptime()做了类似的事情,但并不完全(你应该根据strptime编写自己的函数)

http://www.php.net/manual/en/function.strptime.php

修改

或者,在PHP 5.3+中:date_parse_from_format

http://www.php.net/manual/en/function.date-parse-from-format.php

答案 3 :(得分:-1)

{function rev_date($date){
  $array=explode("-",$date);
            $rev=array_reverse($array);
            $date=implode("-",$rev);
            return $date;
}}