
//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。
$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() ,时间相关函数参数很多,不过用过几次就熟悉了。
1、首先在电脑上创建一个indexphp文件,编辑indexphp。
2、然后输入获取当天零点的时间戳,输入代码$today = strtotime(date("Y-m-d"),time());$time = strtotime($today);//获取到echo $time"<br />";//输出。
3、获取当天24点的时间戳$todayEnd = $today+606024;//家一天的时间echo $time = strtotime($todayEnd)"<br />";//输出。
4、获取前一天时间echo date("Y-m-d H:i:s",strtotime("-1 days"));。
5、以上即时间戳和前一天时间的获取。主要是对date()和strtotime()函数的灵活使用,就可以了。
没有,可以取当前月的第一天00:00的时间戳,然后减24小时,再date即是上个月的最后一天。
如:
$prev_month_last_day = date("Y/m/d", strtotime(date("Y-m-1")) - 86400);
list($year, $month, $day) = explode("/", $prev_month_last_day);
$prev_month_first_day = $year '/' $month '/1';
printf("first day of prev month is : %s\nlast day of prev month is : %s\n", $prev_month_first_day, $prev_month_last_day);
本周周一的日期:
$ts = time();$this_monday = this_monday($ts);
echo date('Y-m-d H:i:s', $this_monday);
//这个星期的星期一
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function this_monday($timestamp=0,$is_return_timestamp=true){
static $cache ;
$id = $timestamp$is_return_timestamp;
if(!isset($cache[$id])){
if(!$timestamp) $timestamp = time();
$monday_date = date('Y-m-d', $timestamp-86400date('w',$timestamp)+(date('w',$timestamp)>086400:-/686400/518400));
if($is_return_timestamp){
$cache[$id] = strtotime($monday_date);
}else{
$cache[$id] = $monday_date;
}
}
return $cache[$id];
}
上周一的函数则为
$ts = time();$last_monday = last_monday($ts);
echo date('Y-m-d H:i:s', $last_monday);
//上周一
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function last_monday($timestamp=0,$is_return_timestamp=true){
static $cache ;
$id = $timestamp$is_return_timestamp;
if(!isset($cache[$id])){
if(!$timestamp) $timestamp = time();
$thismonday = this_monday($timestamp) - /786400/604800;
if($is_return_timestamp){
$cache[$id] = $thismonday;
}else{
$cache[$id] = date('Y-m-d',$thismonday);
}
}
return $cache[$id];
}
以上就是关于如果在PHP中判断某一天是在某一日期的前或后全部的内容,包括:如果在PHP中判断某一天是在某一日期的前或后、php时间问题mysql数据库的时间格式(Y-M-D H:I:S) 在PHP页面想这样显示(Y-M-D) ('.$rows['ndate'].')、php有没相关函数可以获取给定日期的上个月的第一天及最后一天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)