strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
strtotime(time,now)
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。
例子
<?php
echo(strtotime("2015-05-22 15:00:00"))
?>
<?PHP/*
* ==============================
* 此方法由 mantye 提供
* http://my.oschina.net/u/223350
* @date 2014-07-22
* ==============================
* @description 取得两个时间戳相差的年龄
* @before 较小的时间戳
* @after 较大的时间戳
* @return str 返回相差年龄y岁m月d天
**/
$after =1529380306
$before=time()
function datediffage($before, $after) {
if ($before>$after) {
$b = getdate($after)
$a = getdate($before)
}else {
$b = getdate($before)
$a = getdate($after)
}
$n = array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31)
$y=$m=$d=0
if ($a['mday']>=$b['mday']) { //天相减为正
if ($a['mon']>=$b['mon']) {//月相减为正
$y=$a['year']-$b['year']$m=$a['mon']-$b['mon']
}else { //月相减为负,借年
$y=$a['year']-$b['year']-1$m=$a['mon']-$b['mon']+12
}
$d=$a['mday']-$b['mday']
}else { //天相减为负,借月
if ($a['mon']==1) { //1月,借年
$y=$a['year']-$b['year']-1$m=$a['mon']-$b['mon']+12$d=$a['mday']-$b['mday']+$n[12]
}else {
if ($a['mon']==3) { //3月,判断闰年取得2月天数
$d=$a['mday']-$b['mday']+($a['year']%4==0?29:28)
} else {
$d=$a['mday']-$b['mday']+$n[$a['mon']-1]
}
if ($a['mon']>=$b['mon']+1) { //借月后,月相减为正
$y=$a['year']-$b['year']$m=$a['mon']-$b['mon']-1
}else { //借月后,月相减为负,借年
$y=$a['year']-$b['year']-1$m=$a['mon']-$b['mon']+12-1
}
}
}
return ($y==0?'':$y.'年').($m==0?'':$m.'个月').($d==0?'':$d.'天')
}
echo datediffage($before, $after)
?>
有典型意义,自写一个备用。没有用时间戳,可算古今万年。<?php
//计算年数差
//参数:旧年,旧月,标年,标月
function reckonPeriod($by, $bm, $my,$mm){
$bd=new DateTime()
$bd->setDate($by, $bm,1)
$md=new DateTime()
$md->setDate($my, $mm,1)
$diff=$md->diff($bd)
return $diff->m >6? $diff->y+1:$diff->y
}
echo reckonPeriod(1954,3,2012,7).'年'
58年
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)