我想知道是否有人知道在 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”。
提前致谢。
我想知道是否有人知道在 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”。
提前致谢。
试试这个
我的意思是这个问题的真正答案是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');
?>
看看 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
希望有帮助。
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
{function rev_date($date){
$array=explode("-",$date);
$rev=array_reverse($array);
$date=implode("-",$rev);
return $date;
}}