首页 > 代码库 > 自学php找工作【二】 PHP计算时间加一天
自学php找工作【二】 PHP计算时间加一天
最近几天在做一个项目,主要是将SQLserver数据到MySQL数据库,一个url跑一次 同步一次昨天的数据,由于很多数据需要同步,所以做了一个操作界面的,一个单纯跑url的
在其中涉及到了对于时间的计算!当我写完这个程序的时候,我回头看我写的计算时间的代码。有些都有点儿懵了!。。。在这里记录下来方便以后回忆,也方便别人使用!
代码可能会臃肿!新人一枚!欢迎指正!拒绝骂街哦!
先简单说一下代码,其中主要涉及到计算润年 平年,计算28天 31天 30天月份 等,主要就是判断!代码中有注释,大家看一下,希望大家多多指正缺点!
1 /**一年中的31天的月份 2 * @var array 3 */ 4 private $month_31 = array(1,3,5,7,8,10,12); 5 6 /**一年中30天的月份 7 * @var array 8 */ 9 private $month_30 = array(4,6,9,11); 10 11 /**查询开始的时间戳 12 * @var 13 */ 14 private $startTimeStamp; 15 16 /**查询结束的时间戳 17 * @var 18 */ 19 private $endTimeStamp; 20 21 /-----------------------------------------------计算年月---------------------------------------------------------- 22 23 /**计算年份是否是闰年,如果是闰年 2月份是29天 平年是28天, 每调用一次这个函数,天数增 加1天 24 * @return string 时间戳,是经过计算的,前加 ‘00‘ 后加‘000‘ 25 */ 26 private function computeTime() { 27 if (($this->year % 4 == 0 && $this->year % 100 != 0) || ($this->year % 400 == 0)) { 28 $this->computeTimeDate(29); 29 } else { 30 $this->computeTimeDate(28); 31 } 32 } 33 34 /**根据月份是多少天,计算日期时间, 35 * @param $Feb 2月的天数 36 */ 37 private function computeTimeDate($Feb) { 38 39 if ($this->month == 2) { 40 41 if($this->date >= 1 && $this->date <= $Feb) { 42 43 $this->date = $this->date + $this->syncNumDate; 44 //如果加默认天数大于当前月份天数,就计算月份 45 if( $this->date + $this->syncNumDate > $Feb ) { 46 $this->computeDateMonth(); 47 } 48 49 } else if($this->date > $Feb) { 50 51 $D_value = $this->syncNumDate - ($Feb - $this->date); 52 if( $D_value != 0 ) { 53 $this->computeDateMonth($D_value); 54 } else { 55 $this->computeDateMonth(); 56 } 57 58 } else { 59 die(‘2月份天数不在正常范围内‘); 60 } 61 62 } else if( in_array($this->month, $this->month_30) ) { 63 64 if( $this->date >= 1 && $this->date < 30 ) { 65 66 $this->date = $this->date + $this->syncNumDate; 67 if( $this->date + $this->syncNumDate > 30 ) { 68 $this->computeDateMonth(); 69 } 70 71 } else if($this->date >= 30){ 72 73 $D_value = $this->syncNumDate - (30 - $this->date); 74 if( $D_value != 0 ) { 75 $this->computeDateMonth($D_value); 76 } else { 77 $this->computeDateMonth(); 78 } 79 80 } else { 81 die(‘30天的月份天数不在正常范围内‘); 82 } 83 84 } else if(in_array($this->month, $this->month_31)) { 85 86 if( $this->date >= 1 && $this->date < 31 ) { 87 88 $this->date = $this->date + $this->syncNumDate; 89 if( $this->date + $this->syncNumDate > 31 ) { 90 $this->computeDateMonth(); 91 } 92 93 } else if( $this->date >= 31 ){ 94 95 $D_value = $this->syncNumDate - (31 - $this->date); 96 if( $D_value != 0 ) { 97 $this->computeDateMonth($D_value); 98 } else { 99 $this->computeDateMonth();100 }101 102 } else {103 die(‘31天的月份天数不在正常范围内‘);104 }105 106 } else {107 // echo $this->month;108 die(‘函数computeTimeDate计算年月日发生错误‘);109 }110 }111 112 /**113 * 计算加减月份,如果超过12 就让年份 +1 月份恢复到1114 * @param $D_value 差值,由于在计算天数的时候,存在加值过大,造成的重复计算,例如30+6 可能计算两次,差值就是 30+1 剩下的5天,在新的月份添加115 */116 private function computeDateMonth($D_value=‘‘) {117 if($this->month >= 1 && $this->month < 12) {118 $this->month = $this->month + 1;119 120 if( $D_value != ‘‘ ) {121 $this->date = $D_value;122 } else {123 $this->date = 1;124 }125 } else if($this->month == 12) {126 if( $this->year == date(‘Y‘, time()) ) {127 return;128 } else {129 $this->year = $this->year + 1;130 $this->month = 1;131 132 if( $D_value != ‘‘ ) {133 $this->date = $D_value;134 } else {135 $this->date = 1;136 }137 // $this->computeTime();138 }139 } else {140 die(‘computeDateMonth函数计算错误‘);141 }142 }
自学php找工作【二】 PHP计算时间加一天
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。