工作时可能会遇到获取近几个月的时间戳,在向数据库中获取对应值的问题,以下是解决方法,同时借鉴链接中处理31号数据相同bug问题(刚好今天31号测出的bug)
相关链接:
PHP获取当前月份的前一个月、后一个月
/**
* 获取N+1个月的时间戳
*/
if (!function_exists('timeStampMonth')) {
function timeStampMonth($month = 4)
{
$monthList = [];
for ($i = 1; $i > -$month; $i--) {
$monthList[] = strtotime(GetMonth($i));
}
return $monthList;
}
}
/**
* 规避PHP原生php时间戳31天bug
*/
function GetMonth($sign="1")
{
//得到系统的年月
$tmp_date=date("Ym");
//切割出年份
$tmp_year=substr($tmp_date,0,4);
//切割出月份
$tmp_mon =substr($tmp_date,4,2);
$tmp=mktime(0,0,0,$tmp_mon+$sign,1,$tmp_year);
return date("Y-m",$tmp);
}
网友评论