PHP:是否有一个以人类可读格式转换日期字符串的函数?

gus*_*ans 1 php datetime

我想将像"19.11.2009 14:00"这样的日期字符串转换为现在的年龄,如"2分钟"或"1周"或"2天"

是否有一些代码?

dfi*_*ovi 8

$dateString = strtotime('19.11.2009 14.00');
$now = time();

$time = $dateString - $now;

if($time > 60 && $time < 3600) echo $time/60.' minutes remaining';
else if($time > 3600 && $time < 86400) echo $time/3600.' hours remaining';
else if($time > 86400 && $time < 604800) echo $time/86400.' days remaining';
else if($time > 604800 && $time < 18144000) echo $time/604800.' weeks remaining';
else if($time > 18144000 && $time < 217728000) echo $time/18144000.' months remaining';
else if($time > 217728000) echo $time/217728000.' years remaining';
Run Code Online (Sandbox Code Playgroud)


yu_*_*sha 5

像这样的东西

define('MINUTE',60);
define('HOUR',60*MINUTE);
define('DAY',24*HOUR);
define('WEEK',7*DAY);
define('MONTH',30*DAY);

$pastDate=strtotime($dateString);
$seconds=time()-$pastDate;
if ($seconds>MONTH)
  return $seconds/MONTH . " months";
if ($seconds>WEEK)
  return $seconds/WEEK . " weeks";
if ($seconds>DAY)
  return $seconds/DAY . " days";
if ($seconds>HOUR)
  return $seconds/HOUR . " hours";
if ($seconds>MINUTE)
  return $seconds/MINUTE . " minutes";
return $seconds . " seconds";
Run Code Online (Sandbox Code Playgroud)


Ser*_*rgi 5

如果你在PHP 5.3中,你也可以使用DateTime:diff.

$start = new DateTime('now');
$time_span = $start->diff(new DateTime($dateString));
var_dump($time_span);
Run Code Online (Sandbox Code Playgroud)