【发布时间】:2011-10-24 08:47:59
【问题描述】:
如何在 PHP 中将 Y-m-d H:i:s 转换为 Y-m-d?
我有例如
$date = "2011-08-10 20:40:12";
并想将其转换为只是
$output = "2011-08-10";
提前致谢。
【问题讨论】:
如何在 PHP 中将 Y-m-d H:i:s 转换为 Y-m-d?
我有例如
$date = "2011-08-10 20:40:12";
并想将其转换为只是
$output = "2011-08-10";
提前致谢。
【问题讨论】:
$old_date = "2011-08-10 20:40:12";
$new_date = date("Y-m-d", strtotime($old_date));
echo $new_date;
// Prints 2011-08-10
这应该很有用。
【讨论】:
快速/肮脏:
$output = substr('2011-08-10 20:40:12', 0, 10);
稍微更健壮:
$output = date('Y-m-d', strtotime('2011-08-10 20:40:12'));
相当可靠:
$output = DateTime::createFromFormat('Y-m-d h:i:s', '2011-08-10-20:40:12')->format('Y-m-d');
【讨论】:
使用explode 对方法进行调整,以便您可以将其变成一个衬里:
list($date) = explode(' ', $date);
列表函数对于日期来说非常方便。
另一个使用列表的例子:
list($year, $month, $day) = explode(' ', $date);
此外,您最好在字符串中使用 ' 而不是 ",除非您的字符串包含变量。
例如
我已经厌倦了看到 PHP 文档在他们应该使用“字符串”的示例中使用“字符串”:o)
【讨论】:
试试:
$date = explode(" ",$date);
$output = $date[0];
如果用空格隔开,可以用explode来隔开。
【讨论】:
到目前为止,我更喜欢strftime,因为它的格式输入与 C 和其他语言的格式输入相匹配。
$output = strftime( '%Y-%m-%d', strtotime( $date) );
【讨论】:
可以使用php内置的日期格式功能:
http://php.net/manual/en/datetime.format.php
这样做:
$date = date_format($date, 'Y-m-d');
【讨论】:
另一种被认为不太好的解决方案是简单地做一个子字符串:
$newDate = substr($date, 0, 10)
【讨论】:
嗯,一个简单的方法如下(如果你已经得到了字符串中的日期):
$output = substr($date, 0, 10);
这意味着您将获取“2011-08-10 20:40:12”中的前 10 个字符,剩下的是“2011-08-10”!
【讨论】:
$date = date("Y-m-d", strtotime($date));
仅使用日期格式并将您的字符串转换为时间戳。
【讨论】:
使用strtotime() 轻松完成,并且还能够更改为您可能需要的任何其他日期格式。
$old_date = "2011-08-10 20:40:12";
$new_date = date("Y-m-d", strtotime($old_date));
echo $new_date;
// Prints 2011-08-10
【讨论】: