您的位置:

PHP date()函数详解

一、date()函数的基本语法和运作

date(format, timestamp)

该函数可以输出格式化的日期和时间。其中:format为必需,定义日期/时间的格式;timestamp为可选,如果没有提供,则使用当前时间。

日期/时间的格式字符串由不同的字符组成,表示不同的日期/时间值。例如,"Y"表示四位数的年份,"m"表示月份,"d"表示天数,"H"表示小时数(24小时制),"i"表示分钟数,"s"表示秒数,等等。

以下是一些常见的日期/时间格式字符串:

  • "Y" - 四位数的年份,如2021
  • "m" - 两位数的月份,如01~12
  • "d" - 两位数的天数,如01~31
  • "H" - 24小时制的小时数,如00~23
  • "i" - 两位数的分钟数,如00~59
  • "s" - 两位数的秒数,如00~59

例如,要格式化得到当前日期的字符串,可以使用如下的代码:

$dateStr = date("Y-m-d");
echo $dateStr; // 输出:2021-10-01

二、常见的日期/时间格式化字符串

1、输出各种格式的日期和时间

$dateStr = date("Y-m-d H:i:s");
echo $dateStr; // 输出:2021-10-01 20:00:00

2、输出中文日期

$dateStr = date("Y年m月d日");
echo $dateStr; // 输出:2021年10月01日

3、输出12小时制的时间

$dateStr = date("h:i:s A");
echo $dateStr; // 输出:08:00:00 PM

4、输出当年的第几天

$dateStr = date("z");
echo $dateStr; // 输出:273(表示当年的第273天)

5、输出星期几

$dateStr = date("l");
echo $dateStr; // 输出:Friday

三、date()函数与strtotime()函数的配合使用

strtotime()函数可以将人类易读的时间描述字符串转化为Unix时间戳,从而可以方便地与date()函数一起使用。

1、获取明天的日期

// strtotime()函数可以将字符串转化为Unix时间戳
$timestamp = strtotime("+1 day");

// date()函数可以将Unix时间戳转化为指定格式的字符串
$dateStr = date("Y-m-d", $timestamp);

echo $dateStr; // 输出:2021-10-02

2、获取30天后的日期

$timestamp = strtotime("+30 days");
$dateStr = date("Y-m-d", $timestamp);
echo $dateStr; // 输出:2021-10-31

3、获取下一个月的第一天和最后一天

// 获取下一个月的第一天
$firstDayTimestamp = strtotime("first day of next month");
$firstDayDateStr = date("Y-m-d", $firstDayTimestamp);

// 获取下一个月的最后一天
$lastDayTimestamp = strtotime("last day of next month");
$lastDayDateStr = date("Y-m-d", $lastDayTimestamp);

echo "下一个月的第一天是:".$firstDayDateStr."
"; echo "下一个月的最后一天是:".$lastDayDateStr;

四、date()函数的其他用法

1、在PHP中获取当前的Unix时间戳

$timestamp = time();
echo $timestamp;

2、在PHP中获取当前时间是星期几(数字表示)

$dayOfWeek = date("w");
echo $dayOfWeek;

3、在PHP中获取当前脚本的时区

$timezone = date_default_timezone_get();
echo $timezone;

4、在PHP中设置脚本的时区

date_default_timezone_set("Asia/Shanghai");
$timezone = date_default_timezone_get();
echo $timezone; // 输出:Asia/Shanghai

五、总结

PHP date()函数可以很方便地输出格式化的日期和时间,需要掌握的是日期/时间格式字符串。此外,可以通过与strtotime()函数的组合使用,方便地进行日期/时间的计算。