【问题标题】:Issue with DateDiff()DateDiff() 的问题
【发布时间】:2014-02-20 15:14:01
【问题描述】:

我发现了如何通过在选择框中以日、月和年的格式输入用户的出生日期来计算用户的年龄。接下来,我以 dd-mm-yyyy 格式解析他们的 dob。我创建了一个新的 DateTime 并将其命名为今天,然后我只使用 DateDiff 来查找年龄。问题是较新版本的 php 不再支持 DateDiff()。 有人知道我可以与现有代码一起使用的解决方法吗? 抱歉,我是新手,所以我可能需要很多示例来提供您的建议。

计算年龄

$d=$_POST['day'];
$m=$_POST['month'];
$y=$_POST['year'];

//converting Inputed DOB in "dd-mm-yyyy" format
$dob=$d.'-'.$m.'-'.$y;

//Create a new date object with current system date
$bday=new DateTime($dob);

//Differentiating both dates
$age=$bday->date_diff(new DateTime);

$today=date('d-m-Y');


$birthdate = mysql_prep($dob);
$c_age = $age->y; 

【问题讨论】:

  • 谁说新版本的 PHP 不支持 date_diff()?仅从 5.3 开始提供:php.net/date_diff

标签: php datetime


【解决方案1】:

用途:

$age = $bday->diff(new DateTime);

或:

$age = date_diff($bday, new DateTime());

$c_age = $age->y;

两个版本都可以,请参考manual

【讨论】:

  • 我得到的是这个错误:致命错误:在第 45 行调用 /home/mydentis/public_html/test/create_patient.php 中的未定义函数 date_diff()
  • 你用的是哪个版本的php?
  • PHP 5.2.17,呃,这算旧的吗?
  • 是的,至少它不支持date_diff,你需要什么。你读过说明书吗?
  • 从 datetime::diff 到 ->diff 似乎都不起作用,我如何使今天的日期时间减去 dob 的日期时间,以便我可以使用 php 5.2 获得年龄变量?我尝试了 5.2 手册中的其他教程,但它们也不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 1970-01-01
相关资源
最近更新 更多