您的位置:

详解getdate函数

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函数,提高开发效率。