由于PHP提供了丰富的类来处理日期, 因此使用PHP操纵日期已变得非常容易。如果你不知道如何获取两个给定日期之间的年(和其他值)之间的差异, 那么本文可能对你有用。
以下代码段显示了如何检索日期与现在之间的时差。 DateTime对象的diff属性允许你获取有关给定日期之间范围的详细信息:
- 年($ diff-> y)
- 个月($ diff-> m)
- 天($ diff-> days)
- 小时($ diff-> h)
- 秒($ diff-> s)
$stringDate = "12/04/1950";
$date = new DateTime($stringDate);
$now = new DateTime();
$interval = $now->
diff($date);
// the interva contains information about the difference between now and the given datevar_dump($interval);
echo "There are ". $interval->
y. " years between the given date and today";
// The output of the var_dump should be something like :object(DateInterval)#3 (15) {
["y"]=>
int(65)
["m"]=>
int(3)
["d"]=>
int(9)
["h"]=>
int(0)
["i"]=>
int(21)
["s"]=>
int(54)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(1)
["days"]=>
int(23841)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)}
function getDifferenceInYearsBetween($startDate, $limitDate){
$start = new DateTime($startDate);
$end = new DateTime($limitDate);
$interval = $end->
diff($start);
return $interval->
y;
}//call it like //month/day/yearecho getDifferenceInYearsBetween("11/19/1997", "11/19/2012");
注意:如果你不能使用DateTime类(由于php版本5.2或其他原因), 则应该可以使用以下代码片段查找日期:
// Note the format of the string ddate$birthDate = "12/04/1950";
//explode the date to get month, day and year (careful with the separator character, change it to - if you use that sign)$birthDate = explode("/", $birthDate);
//get age from date or birthdate$age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) >
date("md")? ((date("Y") - $birthDate[2]) - 1): (date("Y") - $birthDate[2]));
echo "Age is:" . $age;
// 65
【如何使用PHP根据日期计算年龄】作为文章的标题, 此函数将自身限制为仅几年, 但是如果你有php版本的限制, 此功能将非常有用。
推荐阅读
- 如何在Symfony 3中创建依赖选择(依赖下拉列表)
- IN3026 游戏技术
- android studio NDK上的turbo c ++ graphics.h程序
- Android Things(支持NDK吗( [关闭]))
- 无法配置NDK android studio并获取错误
- 如何在init.rc文件中完全禁用Android L中的SELinux()
- Android NDK抛出信号SIGSEGV(通过JNI获取Activity中的GoogleSignInClient后无效的地址)
- Android NDK(找不到平台文件(标题和库))
- 在android ndk中使用ubuntu header lib