PHP - 如何从时间字符串中获取年,月,日

q09*_*987 18 php

给定以下时间段:

$str = '2000-11-29';

$php_date = getdate( $str );
echo '<pre>';
print_r ($php_date);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

如何用PHP获取年/月/日?

[seconds] => 20
[minutes] => 33
[hours] => 18
[mday] => 31
[wday] => 3
[mon] => 12
[year] => 1969
[yday] => 364
[weekday] => Wednesday
[month] => December
[0] => 2000
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我一年都会得到1969年.

谢谢

Dan*_*uis 32

您可以使用strtotime解析时间字符串,并将生成的时间戳传递给getdate(或用于date格式化时间).

$str = '2000-11-29';

if (($timestamp = strtotime($str)) !== false)
{
  $php_date = getdate($timestamp);
  // or if you want to output a date in year/month/day format:
  $date = date("Y/m/d", $timestamp); // see the date manual page for format options      
}
else
{
  echo 'invalid timestamp!';
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果时间字符串无效或无法解析,strtotime则会返回false.当您尝试解析的时间戳无效时,您最终得到之前遇到的1969-12-31日期.


Rap*_*eta 11

更新:忘记在第一行末尾添加分号,试试这个:

<?php       
$str = "2010-08-29"; // Missed semicolon here
$time = strtotime($str);

// You can now use date() functions with $time, like
$weekday = date("l", $time); // Wednesday or whatever date it is    
?>
Run Code Online (Sandbox Code Playgroud)

希望这会让你前进!


小智 9

PHP - 如何从时间字符串中获取年,月,日

$dateValue = strtotime($q);                     

$yr = date("Y", $dateValue) ." "; 
$mon = date("m", $dateValue)." "; 
$date = date("d", $dateValue); 
Run Code Online (Sandbox Code Playgroud)

  • 它是一个代码练习来解释答案,以便未来的读者可以受益 (2认同)