php 獲取今日、昨日、上週、本月的起始時間戳和結束時間戳的方法,主要使用到了 php 的時間函數 mktime。php
下面首先仍是直奔主題以示例說明如何使用 mktime 獲取今日、昨日、上週、本月的起始時間戳和結束時間戳,而後在介紹一下 mktime 函數做用和用法。函數
//php獲取今日開始時間戳和結束時間戳spa
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//php獲取昨日起始時間戳和結束時間戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
//php獲取上週起始時間戳和結束時間戳
$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'));
//php獲取本月起始時間戳和結束時間戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));code
PHP mktime() 函數用於返回一個日期的 Unix 時間戳。ci
語法get
mktime(hour,minute,second,month,day,year,is_dst)table
參數 | 描述 |
---|---|
hour | 可選。規定小時。 |
minute | 可選。規定分鐘。 |
second | 可選。規定秒。 |
month | 可選。規定用數字表示的月。 |
day | 可選。規定天。 |
year | 可選。規定年。在某些系統上,合法值介於 1901 - 2038 之間。不過在 PHP 5 中已經不存在這個限制了。 |
is_dst | 可選。若是時間在日光節約時間(DST)期間,則設置爲1,不然設置爲0,若未知,則設置爲-1。ast 自 5.1.0 起,is_dst 參數被廢棄。所以應該使用新的時區處理特性。class |
用法參數老是表示 GMT 日期,所以 is_dst 對結果沒有影響。參數能夠從右到左依次空着,空着的參數會被設爲相應的當前 GMT 值。date
注意在 PHP 5.1 以前,若是該函數的參數非法,則會返回 false。
另外須要注意的是該函數對於日期運算和驗證很是有用。它能夠自動校訂越界的輸入,如:
echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));
將輸出結果如:Jan-05-2002
//date('n') 第幾個月 //date("w") 本週周幾 //date("t") 本月天數 echo '<br>上週:<br>'; echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n"; echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n"; echo '<br>本週:<br>'; echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))),"\n"; echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n"; echo '<br>上月:<br>'; echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))),"\n"; echo date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))),"\n"; echo '<br>本月:<br>'; echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))),"\n"; echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n"; $getMonthDays = date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度未最後一月天數 echo '<br>本季度:<br>'; echo date('Y-m-d H:i:s', mktime(0, 0, 0,date('n')-(date('n')-1)%3,1,date('Y'))),"\n"; echo date('Y-m-d H:i:s', mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y'))),"\n";