getdate函數是PHP中非常常用的函數之一,它可以返回當前日期和時間的各個部分,比如年、月、日、星期幾、小時、分鐘和秒等。在這篇文章中,我們將會從以下幾個方面對getdate函數做詳細的闡述。
一、獲取當前時間
<?php
$now = getdate();
print_r($now);
?>
以上代碼將輸出當前時間的各個部分:
Array
(
[seconds] => 50
[minutes] => 53
[hours] => 14
[mday] => 30
[wday] => 6
[mon] => 10
[year] => 2021
[yday] => 302
[weekday] => Saturday
[month] => October
[0] => 1635617630
)
其中,seconds表示秒,minutes表示分,hours表示時,mday表示月份中的第幾天,wday表示星期幾(0表示星期日,1表示星期一,以此類推),mon表示月份,year表示年份,yday表示年份中的第幾天,weekday表示星期幾(全稱),month表示月份(全稱),0表示從1970年1月1日至今的秒數。
二、獲取指定時間的各個部分
<?php
$time = strtotime("2021-10-01 12:34:56");
$details = getdate($time);
print_r($details);
?>
以上代碼將輸出指定時間的各個部分:
Array
(
[seconds] => 56
[minutes] => 34
[hours] => 12
[mday] => 1
[wday] => 5
[mon] => 10
[year] => 2021
[yday] => 273
[weekday] => Friday
[month] => October
[0] => 1633089296
)
其中,strtotime函數可以將指定日期和時間轉換成時間戳,getdate函數可以獲取指定時間的各個部分。
三、格式化輸出時間
<?php
$time = time();
$date = getdate($time);
echo "{$date['year']}-{$date['mon']}-{$date['mday']} {$date['hours']}:{$date['minutes']}:{$date['seconds']}";
?>
以上代碼將輸出當前時間的格式化輸出:
2021-10-30 14:53:50
我們可以根據自己的需求,使用各種方式對時間進行格式化輸出,比如將星期幾用中文表示,或者將月份用英文縮寫表示。
四、判斷閏年
<?php
function isLeapYear($year){
if($year%4==0 && $year%100!=0 || $year%400==0){
return true;
}else{
return false;
}
}
$year = getdate()['year'];
if(isLeapYear($year)){
echo "{$year}年是閏年";
}else{
echo "{$year}年不是閏年";
}
?>
以上代碼將判斷當前年份是否為閏年:
2021年不是閏年
判斷閏年的方法比較簡單,即能被4整除但不能被100整除的年份為閏年,或者能被400整除的年份為閏年。
五、計算兩個日期之間的天數
<?php
$date1 = strtotime("2021-01-01");
$date2 = strtotime("2021-10-30");
$days = ($date2-$date1)/60/60/24;
echo "{$date1}與{$date2}相隔{$days}天";
?>
以上代碼將計算兩個日期之間的天數:
1577808000與1635571200相隔302天
通過strtotime函數將日期轉換為時間戳,並計算時間戳的差值,再除以60/60/24,即可得到相隔的天數。
六、生成一段時間範圍內每天的日期
<?php
$start = strtotime("2021-10-01");
$end = strtotime("2021-10-31");
for($i=$start;$i<=$end;$i+=86400){
echo date("Y-m-d",$i)."<br/>";
}
?>
以上代碼將生成一段時間範圍內每天的日期:
2021-10-01
2021-10-02
2021-10-03
2021-10-04
2021-10-05
2021-10-06
2021-10-07
2021-10-08
2021-10-09
2021-10-10
2021-10-11
2021-10-12
2021-10-13
2021-10-14
2021-10-15
2021-10-16
2021-10-17
2021-10-18
2021-10-19
2021-10-20
2021-10-21
2021-10-22
2021-10-23
2021-10-24
2021-10-25
2021-10-26
2021-10-27
2021-10-28
2021-10-29
2021-10-30
2021-10-31
通過for循環,從開始時間循環到結束時間,並每次累加86400秒(即一天),使用date函數輸出每天的日期。
七、總結
在本篇文章中,我們從多個方面對getdate函數進行了詳細的闡述,涵蓋了日常開發所需要的各個方面。在實際開發中,可以根據自己的需要,靈活應用getdate函數,提高開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293643.html