很多站长朋友们都不太清楚php判断月末,今天小编就来给大家整理php判断月末,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php如何求上一个月月初至月末? 2、 如果在PHP中判断某一天是在某一日期的前或后 3、 php怎么判断某月有多少天? 4、 在php中,怎么判断某一个月有好多天?自动判断大月小月,还要自动判断是否是闰年?怎么写? 5、 php求一段时间内各周的起始时间和结束时间 6、 PHP 判断datetime月份 php如何求上一个月月初至月末?由于php内置时间函数 strtotime 在求上个月这个功能上存在bug,所以放弃不用了……
上个自己写的临时用的,楼主看看:
$thismonth = date('m');
$thisyear = date('Y');
if($thismonth==1) {
$lastmonth = 12;
$lastyear = $thisyear-1;
} else {
$lastmonth = $thismonth - 1;
$lastyear = $thisyear;
}
$lastStartDay = $lastyear.'-'.$lastmonth.'-1';
$lastEndDay = $lastyear.'-'.$lastmonth.'-'.date('t',strtotime($lastStartDay));
echo 'lastStartDay = '.$lastStartDay;
echo '<br/>';
echo 'lastEndDay = '.$lastEndDay;
如果在PHP中判断某一天是在某一日期的前或后//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。
$timestamp = time();
$dateYear = date('Y', $timestamp);//当前年,依当前需要可以不需要比较,但有时也许会用到,比如你的记录不是当年要处理的
$dateMonth = date('n', $timestamp);//当前月份数字,没有前导零
$dateDay = date('j', $timestamp);//月份中的第几天,没有前导零
//剩下的就是比较了,比如你要比较的日期是 2007-03-01
$eventDate = '2007-03-01';
$eventDateArr = explode('-', $eventDate);
$eventYear = intval($eventDateArr[0]);
$eventMonth = intval($eventDateArr[1]);
$eventDay = intval($eventDateArr[2]);
//上面是年月日的拆分,根据实际情况可以调整,如果你直接可以得到就不需要这样取了。
//之后剩下的就是比较了,先比较年
if($dateYear == $eventYear) {
//同年
if($dateMonth == $eventMonth) {
//同月
if($dateDay == $eventDay) {
//同一天,就是当前日期就是事件触发的日期
} elseif($dateDay > $eventDay) {
//事件已经过期了
} else {
//事件触发日期还没到
}
} else {
//之前或之后,再需要详细判断可以在这里比较哪个月份大
}
} else {
//之前或之后,再需要详细判断可以在这里比较哪个年份大
}
//其实这种比较是最简单的逻辑判断,如果你在记录时间触发日期时记录的是 unix 时间戳,这里可以直接进行时间戳比较不过需要处理一下,因为时间戳是精确到秒的
//或者把你记录的日期及其后一天直接转化成 unix 时间戳,时分秒都用 0 ,和当前时间戳比较,细节判断就自己去分析吧,可用函数去查查手册里面 strtotime() ,时间相关函数参数很多,不过用过几次就熟悉了。
php怎么判断某月有多少天?大致原理是这样的,首先获取年份,看他是否是闰年主要是看2月的天数,其他的就很简单了
月份1、3、5、7、8、10、12为31天;4、6、9、11月为30天,就可以了
在php中,怎么判断某一个月有好多天?自动判断大月小月,还要自动判断是否是闰年?怎么写?额,这话说的,有点毛病,直接根据一个月份能判断处该年是平年还是闰年,强........
php求一段时间内各周的起始时间和结束时间function getTimeList($startTime, $endTime, $isWeek=true) {
$result = array();
if(!($st = strtotime($startTime)) || !($et = strtotime($endTime))) return false;
$day = 86400; //一天24*60*60
$sDate = getdate($st);
if($isWeek) {
$result['weekly'] = array();
$nextTime = (6 - $sDate['wday']) * $day + $st;
$currentTime = $st;
while($nextTime < $et) {
$result['weekly'][] = array('weekStart' => gmdate('Y-m-d', $currentTime), 'weekEnd' => gmdate('Y-m-d', $nextTime));
$currentTime = $nextTime + 86400;
$nextTime = $nextTime + 604800;//7天*24小时*60分*60秒
}
$result['weekly'][] = array('weekStart' => gmdate('Y-m-d', $currentTime), 'weekEnd' => $endTime);
} else {
$result['monthly'] = array();
$currentMonth = $st;
$m = $sDate['mon'];
$year = $sDate['year'];
while($lastMonth < $et) {
if($m == 12) {
$m = 1;
$year = $year + 1;
} else $m++;
$firstDate = strtotime($year."-".$m."-01"); //下月初时间截
$lastMonth = $firstDate - $day;//得到本月末时间截
if($lastMonth > $et) $lastMonth = $et;
$result['monthly'][] = array('monthStart' => gmdate('Y-m-d', $currentMonth), 'monthEnd' => gmdate('Y-m-d', $lastMonth));
$currentMonth = $firstDate;
}
}
return $result;
}
调用:
$w = getTimeList('2013-05-02', '2013-08-06');
print_r($w);
echo '<p/>';
$m = getTimeList('2013-05-02', '2014-03-06', false);
print_r($m);
测试OK,你看看是不是你想要的吧
PHP 判断datetime月份可以在数据库里把时间用 Int 类型存时间戳。
在php里显示的时候,用date()就可以任意显示你想要的格式。
如果在放到mysql里查询,可以先在php中把时间判断好,把你要判断的时候转为时间戳后到数据库里判断。应该要用到strtotime().
关于php判断月末的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php判断月末 php获取月份最后一天的详细内容...