电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP獲取時間戳等相關函數匯總

瀏覽:161日期:2022-06-14 09:06:08
目錄一、時間戳和日期互相轉換二、PHP獲取今日、昨日、上周、本周、上月、本月的起始時間戳三、獲取當前周的每天的起始時間四、獲取周的起始時間1、根據指定時間獲取所在周的起始時間和結束時間2、通過時間戳 獲取某周的開始時間和結束時間 五、獲取指定日期是周幾六、通過某個日期段內的周幾獲取對應的日期 開始日期 結束日期 七、獲取指定日期之間的各個周八、獲取指定日期之間的各個月九、根據指定日期獲取所在月的起始時間和結束時間十、獲取指定年份的每個月的起始時間 十一、獲取指定月份的起止時間戳一、時間戳和日期互相轉換// 獲取時間戳$date = time(); // 獲取當前時間戳$date = mktime(0, 0, 0, 10, 10, 2020); // 獲取指定時間的時間戳 2020年10月10日0時0分0秒 // 日期轉換為時間戳$date = '2019-08-08 08:08:08';$timestamp = strtotime($date); // 將時間戳轉換成日期$date = time();echo date('Y-m-d', $date); // 輸出格式化的日期(年-月-日) // 將時間戳轉換為時間格式$date = time();echo date('H:i:s', $date); // 輸出格式化的時間(小時:分鐘:秒) // 日期格式化$date = time();echo date('Y-m-d H:i:s', $date); // 輸出格式化的日期時間(年-月-日 小時:分鐘:秒) // 將時間戳轉換為星期$date = time();echo date('l', $date); // 輸出星期幾的完整文本形式(例如:Sunday) // 將時間戳轉換為月份$date = time();echo date('F', $date); // 輸出月份的完整文本形式(例如:January)二、PHP獲取今日、昨日、上周、本周、上月、本月的起始時間戳//今日開始時間戳和結束時間戳$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; //昨日起始時間戳和結束時間戳$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1; //本周起始時間戳和結束時間戳$startTime = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));$endTime = mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y')); //上周起始時間戳和結束時間戳$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); //本月起始時間戳和結束時間戳$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y')); //上月起始時間戳和結束時間戳$begin_time = date('Y-m-01 00:00:00',strtotime('-1 month'));$end_time = date('Y-m-d 23:59:59', strtotime(-date('d').'day')); //獲取當前季度$season = ceil((date('m'))/3);//本季度起始時間戳和結束時間戳$starTime=mktime(0, 0, 0,$season*3-3+1,1,date('Y'));$endTime = mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date('Y'))),date('Y')); //當年起始時間戳和結束時間戳$startTime = strtotime(date('Y',time()).'-1'.'-1'); $overTime = strtotime(date('Y',time()).'-12'.'-31');三、獲取當前周的每天的起始時間function getDay(){ $timestr = time(); //當前時間戳 $now_day = date('w',$timestr); //當前是周幾 //獲取周一 $monday_str = $timestr - ($now_day-1)*60*60*24; $monday = date('Y-m-d', $monday_str); //獲取周日 $sunday_str = $timestr + (7-$now_day)*60*60*24; $sunday = date('Y-m-d', $sunday_str); for($i=0;$i<7;$i++) { $arr[$i]['start']=strtotime(date('Y-m-d',strtotime($monday.'+'.$i.'day'))); $arr[$i]['end']=strtotime(date('Y-m-d',strtotime($monday.'+'.$i.'day')). ' 24:00:00'); } return $arr; }四、獲取周的起始時間1、根據指定時間獲取所在周的起始時間和結束時間/*** @param data 日期*/function get_weekinfo_by_time($date) { $idx = strftime('%u', strtotime($date)); $mon_idx = $idx - 1; $sun_idx = $idx - 7; return array( 'week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400), 'week_end_day' => strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400), );}2、通過時間戳 獲取某周的開始時間和結束時間 /*** @param time 時間* @param first 表示每周星期一為開始日期 0表示每周日為開始日期*/function getWeekMyActionAndEnd($time = '', $first = 1){ //當前日期 if (!$time) $time = time(); $sdefaultDate = date('Y-m-d', $time); //$first =1 表示每周星期一為開始日期 0表示每周日為開始日期 //獲取當前周的第幾天 周日是 0 周一到周六是 1 - 6 $w = date('w', strtotime($sdefaultDate)); //獲取本周開始日期,如果$w是0,則表示周日,減去 6 天 $week_start = date('Y-m-d', strtotime('$sdefaultDate -' . ($w ? $w - $first : 6) . ' days')); //本周結束日期 $week_end = date('Y-m-d', strtotime('$week_start +6 days')); return array('week_start' => $week_start, 'week_end' => $week_end);}五、獲取指定日期是周幾/*** @param data 日期*/function DateToWeek($date){ //強制轉換日期格式 $date_str=date('Y-m-d',strtotime($date)); //封裝成數組 $arr=explode('-', $date_str); //參數賦值 //年 $year=$arr[0]; //月,輸出2位整型,不夠2位右對齊 $month=sprintf('%02d',$arr[1]); //日,輸出2位整型,不夠2位右對齊 $day=sprintf('%02d',$arr[2]); //時分秒默認賦值為0; $hour = $minute = $second = 0; //轉換成時間戳 $strap = mktime($hour,$minute,$second,$month,$day,$year); //獲取數字型星期幾 $number_wk=date('w',$strap); //自定義星期數組 $weekArr=array('周日','周一','周二','周三','周四','周五','周六'); //獲取數字對應的星期 return $weekArr[$number_wk];}六、通過某個日期段內的周幾獲取對應的日期 開始日期 結束日期 /*** @param data 日期 array(start_date,end_data)*/function getDateByWeek($data){ $start_date = strtotime($data['start_date']); $end_date = strtotime($data['end_date']); $days = ($end_date - $start_date) / 86400; $weekArr = array('周日','周一','周二','周三','周四','周五','周六'); $newDate = array(); // 組建數組格式 $dataWeek['日期'] => 星期 for ($i=0; $i < $days; $i++) { $num_week = date('w',$start_date+($i*86400));$dateWeek[date('Y-m-d',$start_date+($i*86400))] = $weekArr[$num_week]; } // 查找兩個數組的交集,即獲取提交的星期對應的日期 $newDate=array_intersect($dateWeek,$data['items']); // 獲取數組中的鍵值(日期),并組成一個新數組 $date = array_keys($newDate); return $date;}七、獲取指定日期之間的各個周/*** @param sdate 開始日期* @param edate 結束日期*/function get_weeks($sdate, $edate) { $range_arr = array(); // 檢查日期有效性 check_date(array($sdate, $edate)); // 計算各個周的起始時間 do { $weekinfo = get_weekinfo_by_date($sdate); $end_day = $weekinfo['week_end_day']; $start = substr_date($weekinfo['week_start_day']); $end = substr_date($weekinfo['week_end_day']); $range = '{$start} ~ {$end}'; $range_arr[] = $range; $sdate = date('Y-m-d', strtotime($sdate)+7*86400); }while($end_day < $edate); return $range_arr;} /** * 檢查日期的有效性 YYYY-mm-dd * @param array $date_arr * @return boolean */function check_date($date_arr) { $invalid_date_arr = array(); foreach ($date_arr as $row) { $timestamp = strtotime($row); $standard = date('Y-m-d', $timestamp); if ($standard != $row) $invalid_date_arr[] = $row; } if ( ! empty($invalid_date_arr)) { die('invalid date -> '.print_r($invalid_date_arr, TRUE)); }} /** * 截取日期中的月份和日 * @param string $date * @return string $date */ function substr_date($date) { if ( ! $date) return FALSE; return date('m-d', strtotime($date)); } /** * 根據指定日期獲取所在周的起始時間和結束時間 */ function get_weekinfo_by_date($date) { $idx = strftime('%u', strtotime($date)); $mon_idx = $idx - 1; $sun_idx = $idx - 7; return array( 'week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400), 'week_end_day' => strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400), ); }八、獲取指定日期之間的各個月/*** @param sdate 開始日期* @param edate 結束日期*/function get_months($sdate, $edate) { $range_arr = array(); do { $monthinfo = get_monthinfo_by_date($sdate); $end_day = $monthinfo['month_end_day']; $start = substr_date($monthinfo['month_start_day']); $end = substr_date($monthinfo['month_end_day']); $range = '{$start} ~ {$end}'; $range_arr[] = $range; $sdate = date('Y-m-d', strtotime($sdate.'+1 month')); }while($end_day < $edate); return $range_arr; } /** * 截取日期中的月份和日 * @param string $date * @return string $date */ function substr_date($date) { if ( ! $date) return FALSE; return date('m-d', strtotime($date)); } /** * 根據指定日期獲取所在月的起始時間和結束時間 */ function get_monthinfo_by_date($date){ $ret = array(); $timestamp = strtotime($date); $mdays = date('t', $timestamp); return array( 'month_start_day' => date('Y-m-1', $timestamp), 'month_end_day' => date('Y-m-'.$mdays, $timestamp) ); }九、根據指定日期獲取所在月的起始時間和結束時間/*** @param date 日期*/function get_monthinfo_by_date($date){ $ret = array(); $timestamp = strtotime($date); $mdays = date('t', $timestamp); return array( 'month_start_day' => date('Y-m-1', $timestamp), 'month_end_day' => date('Y-m-'.$mdays, $timestamp) );}十、獲取指定年份的每個月的起始時間/*** @param year 年份*/function getMonthByDate($year){ // $year = '2019'; $yeararr = []; $month = []; for ($i=1; $i <=12 ; $i++) { $yeararr[$i] = $year.'-'.$i; } foreach ($yeararr as $key => $value) {$timestamp = strtotime($value );$start_time = date( 'Y-m-1 00:00:00', $timestamp );$mdays = date( 't', $timestamp );$end_time = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );$month[$key]['start_time'] = strtotime($start_time);$month[$key]['end_time'] = strtotime($end_time); } return $month;} 十一、獲取指定月份的起止時間戳/*** 獲取指定月份的時間戳* @param $date Y-m*/function get_month_begin_end($date){ // $date = '2018-11'; $data['begin_time'] = strtotime($date); //指定月份月初時間戳 $data['end_time'] = mktime(23,59,59,date('m',strtotime($date))+1,00); //指定月份月末時間戳 return $data;}

PHP中的時間戳相關函數非常豐富,可以滿足開發者在處理時間相關問題時的各種需求。其中,time()函數可以獲取當前時間戳,strtotime()函數可以將字符串轉換為時間戳,date()函數可以將時間戳格式化為指定的日期格式。除此之外,還有mktime()函數可以根據指定的時間參數獲取時間戳,microtime()函數可以獲取當前時間的微秒數等。掌握這些函數可以幫助開發者更加高效地處理時間相關的問題,提高開發效率。

到此這篇關于PHP獲取時間戳等相關函數匯總的文章就介紹到這了,更多相關PHP獲取時間戳等相關函數內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: PHP
相關文章:
主站蜘蛛池模板: 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 无味渗透剂,泡沫抑尘剂,烷基糖苷-威海威能化工有限公司 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 北京乾茂兴业科技发展有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 |