欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP獲取時間戳等相關(guān)函數(shù)匯總

 更新時間:2023年06月15日 08:29:37   作者:下頁、再停留  
PHP是一種廣泛使用的服務(wù)器端腳本語言,具有豐富的時間戳相關(guān)函數(shù)。本文介紹了PHP中獲取時間戳的常用函數(shù),包括time()、strtotime()、date()等,并提供了使用示例。同時,還介紹了PHP中其他與時間相關(guān)的函數(shù),如mktime()、microtime()等。

一、時間戳和日期互相轉(zhuǎn)換

// 獲取時間戳
$date = time(); // 獲取當(dāng)前時間戳
$date = mktime(0, 0, 0, 10, 10, 2020); // 獲取指定時間的時間戳 2020年10月10日0時0分0秒
 
// 日期轉(zhuǎn)換為時間戳
$date = "2019-08-08 08:08:08";
$timestamp = strtotime($date);
 
// 將時間戳轉(zhuǎn)換成日期
$date = time();
echo date('Y-m-d', $date); // 輸出格式化的日期(年-月-日)
 
// 將時間戳轉(zhuǎn)換為時間格式
$date = time();
echo date('H:i:s', $date); // 輸出格式化的時間(小時:分鐘:秒)
 
// 日期格式化
$date = time();
echo date('Y-m-d H:i:s', $date); // 輸出格式化的日期時間(年-月-日 小時:分鐘:秒)
 
// 將時間戳轉(zhuǎn)換為星期
$date = time();
echo date('l', $date); // 輸出星期幾的完整文本形式(例如:Sunday)
 
// 將時間戳轉(zhuǎn)換為月份
$date = time();
echo date('F', $date); // 輸出月份的完整文本形式(例如:January)

二、PHP獲取今日、昨日、上周、本周、上月、本月的起始時間戳

//今日開始時間戳和結(jié)束時間戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
 
//昨日起始時間戳和結(jié)束時間戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
 
//本周起始時間戳和結(jié)束時間戳
$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'));
 
//上周起始時間戳和結(jié)束時間戳
$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'));
 
//本月起始時間戳和結(jié)束時間戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
 
//上月起始時間戳和結(jié)束時間戳
$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'));
 
//獲取當(dāng)前季度
$season = ceil((date('m'))/3);
//本季度起始時間戳和結(jié)束時間戳
$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'));
 
//當(dāng)年起始時間戳和結(jié)束時間戳
$startTime  = strtotime(date("Y",time())."-1"."-1"); 
$overTime  = strtotime(date("Y",time())."-12"."-31");

三、獲取當(dāng)前周的每天的起始時間

function getDay(){
    $timestr = time();    //當(dāng)前時間戳
    $now_day = date('w',$timestr);  //當(dāng)前是周幾
 
    //獲取周一
    $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、根據(jù)指定時間獲取所在周的起始時間和結(jié)束時間

/**
* @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、通過時間戳 獲取某周的開始時間和結(jié)束時間 

/**
* @param time 時間
* @param first 表示每周星期一為開始日期 0表示每周日為開始日期
*/
function getWeekMyActionAndEnd($time = '', $first = 1)
{
  //當(dāng)前日期
  if (!$time) $time = time();
  $sdefaultDate = date("Y-m-d", $time);
  //$first =1 表示每周星期一為開始日期 0表示每周日為開始日期
  //獲取當(dāng)前周的第幾天 周日是 0 周一到周六是 1 - 6
  $w = date('w', strtotime($sdefaultDate));
  //獲取本周開始日期,如果$w是0,則表示周日,減去 6 天
  $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
  //本周結(jié)束日期
  $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){
    //強制轉(zhuǎn)換日期格式
    $date_str=date('Y-m-d',strtotime($date));
 
    //封裝成數(shù)組
    $arr=explode("-", $date_str);
     
    //參數(shù)賦值
    //年
    $year=$arr[0];
     
    //月,輸出2位整型,不夠2位右對齊
    $month=sprintf('%02d',$arr[1]);
     
    //日,輸出2位整型,不夠2位右對齊
    $day=sprintf('%02d',$arr[2]);
     
    //時分秒默認(rèn)賦值為0;
    $hour = $minute = $second = 0;   
     
    //轉(zhuǎn)換成時間戳
    $strap = mktime($hour,$minute,$second,$month,$day,$year);
     
    //獲取數(shù)字型星期幾
    $number_wk=date("w",$strap);
     
    //自定義星期數(shù)組
    $weekArr=array("周日","周一","周二","周三","周四","周五","周六");
     
    //獲取數(shù)字對應(yīng)的星期
    return $weekArr[$number_wk];
}

六、通過某個日期段內(nèi)的周幾獲取對應(yīng)的日期  開始日期 結(jié)束日期 

/**
* @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();
    // 組建數(shù)組格式 $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];
    }
    // 查找兩個數(shù)組的交集,即獲取提交的星期對應(yīng)的日期
    $newDate=array_intersect($dateWeek,$data['items']);
    // 獲取數(shù)組中的鍵值(日期),并組成一個新數(shù)組
    $date = array_keys($newDate);
    return $date;
}

七、獲取指定日期之間的各個周

/**
* @param sdate 開始日期
* @param edate 結(jié)束日期
*/
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));
  }
 
/**
   * 根據(jù)指定日期獲取所在周的起始時間和結(jié)束時間
   */
   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 結(jié)束日期
*/
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));
  }
 
/**
   * 根據(jù)指定日期獲取所在月的起始時間和結(jié)束時間
   */
   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)
      );
  }

九、根據(jù)指定日期獲取所在月的起始時間和結(jié)束時間

/**
* @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中的時間戳相關(guān)函數(shù)非常豐富,可以滿足開發(fā)者在處理時間相關(guān)問題時的各種需求。其中,time()函數(shù)可以獲取當(dāng)前時間戳,strtotime()函數(shù)可以將字符串轉(zhuǎn)換為時間戳,date()函數(shù)可以將時間戳格式化為指定的日期格式。除此之外,還有mktime()函數(shù)可以根據(jù)指定的時間參數(shù)獲取時間戳,microtime()函數(shù)可以獲取當(dāng)前時間的微秒數(shù)等。掌握這些函數(shù)可以幫助開發(fā)者更加高效地處理時間相關(guān)的問題,提高開發(fā)效率。

到此這篇關(guān)于PHP獲取時間戳等相關(guān)函數(shù)匯總的文章就介紹到這了,更多相關(guān)PHP獲取時間戳等相關(guān)函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP如何實現(xiàn)Unicode和Utf-8編碼相互轉(zhuǎn)換

    PHP如何實現(xiàn)Unicode和Utf-8編碼相互轉(zhuǎn)換

    本文介紹了通過PHP實現(xiàn)一個函數(shù)可以對字符串進(jìn)行Unicode的編碼和解碼,需要的朋友可以參考下
    2015-07-07
  • PHP入門教程之正則表達(dá)式基本用法實例詳解(正則匹配,搜索,分割等)

    PHP入門教程之正則表達(dá)式基本用法實例詳解(正則匹配,搜索,分割等)

    這篇文章主要介紹了PHP入門教程之正則表達(dá)式基本用法,結(jié)合實例形式分析了正則表達(dá)式的結(jié)構(gòu)、原理及正則匹配、搜索、分割、元子符、修飾符等相關(guān)概念與操作技巧,需要的朋友可以參考下
    2016-09-09
  • php實現(xiàn)自運行的實例詳解

    php實現(xiàn)自運行的實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于php實現(xiàn)自運行的實例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • 利用PHP判斷文件是否為圖片的方法總結(jié)

    利用PHP判斷文件是否為圖片的方法總結(jié)

    最近在工作中遇到一個需要,要判斷一個文件是否為圖片的功能,通過查找相關(guān)的資料找到了幾種方法,包括利用getimagesize函數(shù)獲取圖片信息,然后進(jìn)行判斷或讀取圖片的前2個字節(jié)等方法。下面來一起看看詳細(xì)的介紹吧,需要的朋友可以參考下。
    2017-01-01
  • 最新評論