如何在PHP中将Y-m-DH:i:s转换为Y-m-d?

如何在PHP中将Y-m-DH:i:s转换为Y-m-d?,php,date,time,Php,Date,Time,如何在PHP中将Y-m-DH: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 只

如何在PHP中将Y-m-DH: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

只需将日期格式用于date only,并将字符串转换为时间戳即可。

好的,一种简单的方法如下(如果您已经在字符串中获取了日期):

这意味着你在“2011-08-1020:40:12”中抓取了前10个字符,剩下的是“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');

另一个被认为不太好的解决方案是简单地执行子字符串:

$newDate = substr($date, 0, 10)

您可以使用内置的php日期格式函数:

为此:

$date = date_format($date, 'Y-m-d');

迄今为止,我更喜欢
strftime
,因为它的格式输入与C和其他语言的格式输入相匹配

$output = strftime( '%Y-%m-%d', strtotime( $date) );
尝试:


如果它们由空格分隔,则可以使用“分解”来分隔它们。

对使用“分解”的方法进行调整,以便将其转换为一行:

列表($date)=分解(“”,$date)

列表功能对于日期非常方便

使用列表的另一个示例:

列表($year,$month,$day)=爆炸('',$date)

此外,除非字符串中包含变量,否则最好在字符串中使用“而不是”

e、 g

  • “雅达”
  • “必应”
  • “你好{$bob}”
我讨厌看到PHP文档在应该使用“字符串”的示例中使用“字符串”:o)


这应该非常有用。

该死的,你们太快了!这一个已经被贴出来了,我不是唯一一个在PHP 5.5.4上第三种情况下这么简单的人!:-)致命错误:找不到类'Date',但是DateTime::createFromFormat()有效。啊,是的。很好的捕获。谢谢。修复了答案。它给出的错误无法转换数组中的字符串偏移量。
$date = date_format($date, 'Y-m-d');
$output = strftime( '%Y-%m-%d', strtotime( $date) );
$date = explode(" ",$date);
$output = $date[0];
$old_date = "2011-08-10 20:40:12";
$new_date = date("Y-m-d", strtotime($old_date));
echo $new_date;

// Prints 2011-08-10