我有2个输入字段用于出生日期。我想计算每个人的下一个生日的天数,并输入两个日期之间的差异以确定谁更老。我的语法是合乎逻辑的/我哪里出错?
{{1}}
答案 0 :(得分:1)
您需要先转换它们。
In [55]: avg(lsit)
Out[55]: 273
它可能对你有帮助
答案 1 :(得分:1)
您的变体几乎是正确的。使用 format
显示日期之间的差异。就像例子
$origin = new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');
答案 2 :(得分:0)
public function days_to_birth(string $date) : int {
if(empty($date))
{
return -1;
}
if($date == '0000-00-00')
{
return -1;
}
$ts = strtotime($date.' 00:00:00');
$bY = date('Y',$ts);
$bm = date('m',$ts);
$bd = date('d',$ts);
$nowY = date('Y');
$nowm = date('m');
$nowd = date('d');
if($bm == $nowm && $bd >= $nowd)
{
return $bd - $nowd;
}
if( ($bm == $nowm && $bd < $nowd) || ($bm < $nowm) )
{
$nextBirth = ($nowY+1).'-'.$bm.'-'.$bd;
$nextBirthTs = strtotime($nextBirth);
$diff = $nextBirthTs - time();
return floor($diff/(60*60*24));
}
if($bm > $nowm )
{
$nextBirth = $nowY.'-'.$bm.'-'.$bd.'00:00:00';
$diff = strtotime($nextBirth) - time();
return floor($diff/(60*60*24));
}
return -1;
}