PHP时间正则操作
- 发表于
- PHP
看代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/* *今天 17:27 ^今天.* *昨天 19:35 ^昨天.* *25日 21:30 ^[\d]*日 *02月28日 ^[\d]*月[\d]*日 *13年06月25日 ^[\d]*年[\d]*月[\d]*日 */ //昨天,今天和明天的日期转换 //($startstr 今天开始时间戳) //返回(昨天,今天和明天)的0点和23点59分59秒 function alldaytostr($startstr) { $oneday_count = 3600 * 24; //一天有多少秒 //明天 $tomorrow_s = $startstr + $oneday_count; //明天开始 $tomorrow_e = $tomorrow_s + $oneday_count - 1; //明天结束 //昨天 $yesterday_s = $startstr - $oneday_count; //昨天开始 $yesterday_e = $startstr - 1; //昨天结束 //今天结束 $today_e = $tomorrow_s - 1; //昨天、今天和明天 0点和当天23点59分59秒合并成数组 $allday_array = array('yesterday' => array($yesterday_s, $yesterday_e), 'today' => array($startstr, $today_e), 'tomorrow' => array($tomorrow_s, $tomorrow_e)); return $allday_array; } date_default_timezone_set("Asia/Shanghai"); //当天开始时间 $btime = date('Y-m-d' . ' 00:00:00'); //转换成“开始”的时间戳 $btimestr = strtotime($btime); $daylist = alldaytostr($btimestr); $time = "13年06月25日"; //今天 if (preg_match('/^今天.*/', $time)) { preg_match('/[\d]*:[\d]*/', $time, $day); $created_at = strtotime(date('Y-m-d' . ' ' . $day[0] . ':00')); } else if (preg_match('/^昨天.*/', $time)) { //昨天 preg_match('/[\d]*:[\d]*/', $time, $day); $created_at = strtotime(date('Y-m-d' . ' ' . $day[0] . ':00', $daylist['yesterday'][0])); } else if (preg_match('/^[\d]*日/', $time)) { //本月 preg_match('/^([\d]*)日\s([\d:]*)/', $time, $day); $created_at = strtotime(date('Y-m-' . $day[1] . ' ' . $day[2] . ':00')); } else if (preg_match('/^[\d]*月[\d]*日/', $time)) { //本年 preg_match('/^([\d]*)月([\d]*)日/', $time, $day); $created_at = strtotime(date('Y-' . $day[1] . '-' . $day[2] . ' 00:00:00')); } else if (preg_match('/^[\d]*年[\d]*月[\d]*日/', $time)) { //历年 preg_match('/^([\d]*)年([\d]*)月([\d]*)日/', $time, $day); $created_at = strtotime(date($day[1] . '-' . $day[2] . '-' . $day[3] . ' 00:00:00')); } echo $created_at; |
原文连接:PHP时间正则操作
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。