0

我想知道是否有人知道在 php.ini 中反转日期函数的方法。例如..如果我想打印日/月/年/时间,我会这样做:

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

如果我在 2012 年 1 月 1 日星期六 12.12pm - 有没有办法扭转这个输出“2012-01-01 12:12:12”。

提前致谢。

4

4 回答 4

6

试试这个

我的意思是这个问题的真正答案是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'); 
?>
于 2012-10-23T12:59:02.510 回答
2

看看 PHP 的DateTime。它比旧式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

希望有帮助。

于 2012-10-23T13:03:17.503 回答
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

于 2012-10-23T13:00:25.600 回答
-1
{function rev_date($date){
  $array=explode("-",$date);
            $rev=array_reverse($array);
            $date=implode("-",$rev);
            return $date;
}}
于 2015-04-04T16:08:08.347 回答