php calender(日历)二个版本代码示例(解决2038问题)
发布时间:2020-12-12 19:59:33 所属栏目:PHP教程 来源:网络整理
导读:我们还可以使用DateTime来规避这个问题(这样与32位64位无关了) 代码如下: /** * * 我的日历 * date_default_timezone_set date mktime * @param int $year * @param int $month * @param string $timezone * @author fc_lamp * @blog: fc-lamp.blog.163.com
我们还可以使用DateTime来规避这个问题(这样与32位64位无关了) 代码如下: /**
* * 我的日历 * date_default_timezone_set date mktime * @param int $year * @param int $month * @param string $timezone * @author fc_lamp * @blog: fc-lamp.blog.163.com */ function myCalender($year = '',$month = '',$timezone = 'Asia/Shanghai') {date_default_timezone_set ( $timezone ); $year = abs ( intval ( $year ) ); $month = abs ( intval ( $month ) );//是否是32位机 if (is32()) { if ($year < 1970 or $year >= 2038) { $year = date ( 'Y' ); } } else { if ($year <= 0) { $year = date ( 'Y' ); }}if ($month <= 0 or $month > 12) { $month = date ( 'm' ); }//上一年 $pretYear = $year - 1; //上一月 $mpYear = $year; $preMonth = $month - 1; if ($preMonth <= 0) { $preMonth = 1; $mpYear = $pretYear; }//下一年 $nextYear = $year + 1; //下一月 $mnYear = $year; $nextMonth = $month + 1; if ($nextMonth > 12) { $nextMonth = 1; $mnYear = $nextYear; }//日历头 $html = <<
return $html; } /** 使用DateTime 类解决2038问题,这样不分32位与64位,代码如下: 代码如下: /** * * 我的日历(DateTime版本) * date_default_timezone_set date mktime * @param int $year * @param int $month * @param string $timezone * @author fc_lamp * @blog: fc-lamp.blog.163.com */ function myCalender($year = '',$timezone = 'Asia/Shanghai') {date_default_timezone_set ( $timezone ); $year = abs ( intval ( $year ) ); $month = abs ( intval ( $month ) );$nowDate = new DateTime();if ($year <= 0) { $year = $nowDate->format( 'Y' ); }if ($month <= 0 or $month > 12) { $month = $nowDate->format('m' ); }//上一年 $pretYear = $year - 1; //上一月 $mpYear = $year; $preMonth = $month - 1; if ($preMonth <= 0) { $preMonth = 1; $mpYear = $pretYear; }//下一年 $nextYear = $year + 1; //下一月 $mnYear = $year; $nextMonth = $month + 1; if ($nextMonth > 12) { $nextMonth = 1; $mnYear = $nextYear; }//日历头 $html = <<
return $html; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |