首頁 >後端開發 >php教程 >PHP常用日期時間操作集

PHP常用日期時間操作集

安安杰尼
安安杰尼原創
2020-04-30 15:51:35197173瀏覽

需求背景

PHP程式設計師在日常開發中經常需要計算各種時間,經常有些比較複雜的,特意整理了以下這些常用的,建議收藏。更多詳細的操作函數整合了自取https://github.com/xmgb-cj/date

程式碼

1. 取得上個月第一天及最後一天

echo date('Y-m-01', strtotime('-1 month'));
echo date('Y-m-t', strtotime('-1 month'));

2. 取得當月第一天及最後一天

$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
echo $BeginDate;
echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));

3. 取得當天年份、月份、日及天數

echo " 本月共有:".date("t")."天";
echo " 当前年份".date('Y');
echo " 当前月份".date('m');
echo " 当前几号".date('d');

4. 取得本週的第一天和最後一天

//当前日期
$sdefaultDate = date("Y-m-d");
//$first =1 表示m每周星期一为开始日期 0表示每周日为开始日期
$first = 1;
//获取当前周的第几天 周日是 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"));

5. 判斷目前日期是星期幾

$weekarray=array("日","一","二","三","四","五","六");
echo "星期".$weekarray[date("w")];

6. 計算兩個日期相差的天數

<?php
/**
 * 求两个日期之间相差的天数
 * (针对1970年1月1日之后,求之前可以采用泰勒公式)
 * @param string $day1
 * @param string $day2
 * @return number
 */
function diffBetweenTwoDays ($day1, $day2)
{
  $second1 = strtotime($day1);
  $second2 = strtotime($day2);
    
  if ($second1 < $second2) {
    $tmp = $second2;
    $second2 = $second1;
    $second1 = $tmp;
  }
  return ($second1 - $second2) / 86400;
}
$day1 = "2013-07-27";
$day2 = "2013-08-04";
$diff = diffBetweenTwoDays($day1, $day2);
echo $diff."\n";

提升

1. 整合了一份更強大的時間操作庫,自行下載https://github.com/xmgb-cj/date,在部分社交場景的專案中,例如用戶發布了一個動態內容,需要人性化的顯示發佈時間,例如1分鐘前,1小時前,1個月前等人性化的顯示,這是可以使用庫中的以下函數

$time = new Time();
$resp = $time->timeDiff(&#39;2020-04-30 12:00:00&#39;);
var_dump($resp);

2. 再如計算兩個時間的差,得出相差幾天、月、季、年,可以使用以下程式碼得到相差的月份,具體由第二個參數控制。

$date = &#39;2020-01-30&#39;;
$month = floor(abs($time->dateDiff($date, &#39;M&#39;)));

 3. 判斷日期所屬幹支生肖星座        

$time = new Time();
echo $time->magicInfo(&#39;XZ&#39;);
//得到今天的星座

總結:

發展中這種時間日期運算函數還是非常多的,還有一個比較常用的就是判斷指定日期是否工作日,這個在網路上的介面大部分不可用,個人建議還是自己維護一份假日資料表,國家每年發布法定假日時維護一次就可以了。

以上是PHP常用日期時間操作集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn