PHP Date Format详解

发布时间:2023-05-20

一、PHP Date Format概述

在开发Web应用程序时,我们经常会涉及到日期和时间的处理。比如说,我们需要在网站上显示文章的发布日期,或者需要统计用户行为数据中的时间戳,还需要在订单交易过程中记录订单生成时间等等。PHP的Date Format函数是一个非常有用的工具,能够轻松处理各种不同格式的日期和时间,在这篇文章里我们将详细阐述其使用方法。 Date Format函数是PHP中一个非常流行的工具,可以用来格式化日期和时间。可以使用大量的格式化选项,以便您在不同情况下使用时间戳,时间戳字符串和日期对象。在下面的小节中,我们将详细介绍php date方法的不同用例及用法。

二、PHP Date Format使用方法

在PHP中,您可以使用date()函数来格式化日期和时间。date()函数的常规语法如下:

date(format, timestamp)

在此处:

  • format - 必需。规定要使用的日期/时间格式。有很多不同的选项可供选择。
  • timestamp - 可选。规定时间戳。默认是当前日期和时间。

三、格式代码

PHP使我们能够使用不同的日期格式选项来生成日期和时间。列表中将提供大量常用格式代码及解释:

  • d - 月份中的第几天,有前导零(01至31)
  • D - 一周中的第几天的缩写(例如:星期五为“Fri”)
  • j - 月份中的第几天,没有前导零(1 to 31)
  • l(小写 L)- 一周中的某天(例如,Friday)
  • N - ISO-8601格式表示的星期几(1(星期一)到7(星期日))
  • S - 月份中的英语序数后缀,2个字符(仅英语)。只在j格式代码没有前导零时使用。如:1st, 2nd, 3rd...
  • w - 一周中的第几天(0〜6)
  • z - 年份中的第几天(0到365)
  • W - ISO-8601格式表示的年份中的第几周。W和年份中的周数一起使用:2018W25 (表示2018年第25周)
  • F - 月份的完整英文名称(例如,January)
  • m - 数字表示的月份,有前导零(01至12)
  • M - 月份数字和英文缩写(例如, Jan)
  • n - 数字表示的月份,没有前导零(1 to 12)
  • t - 月份中的天数(28至31)
  • Y - 四位数的年份
  • y - 两位数的年份
  • a - 小写的上午和下午值(例如,am或pm)
  • A - 大写的上午和下午值(例如,AM或PM)
  • g - 12小时制,没有前导零(1 to 12)
  • G - 24小时制,没有前导零(0 to 23)
  • h - 12小时制,有前导零(01至12)
  • H - 24小时制,有前导零(00 to 23)
  • i - 有前导零的分钟数(00到59)
  • s - 秒数,有前导零(00至59)
  • O - 标准CST / EST格式的GMT偏移量(例如:'+0530')
  • P - RFC822格式的HTM偏移量(例如:+05:30)
  • T - 缩写的时区名称(例如,UTC或EST)
  • Z - 时区偏移量秒数。UTC西部的-43200到+43200之间。
  • c - ISO 8601 格式的日期(例如,2004-02-12T15:19:21 + 00:00)
  • r - RFC 2822格式的日期(例如:Thu, 21 Dec 2000 16:01:07 +0200)
  • U - Unix时间戳(从Unix纪元(1970年1月1日00:00:00 GMT)开始的秒数)

四、示例代码

以下示例展示了如何使用不同的格式代码创建各种不同格式的日期:

// 获取当前时间日期
echo date("Y-m-d H:i:s");
// 以各种方式显示当前日期
echo date('d-m-Y');
echo "<br>";
echo date('d/m/Y');
echo "<br>";
echo date('d.m.Y');
echo "<br>";
echo date('l jS \of F Y h:i:s A');
// 将时间戳转换为日期
$timestamp = 1609459200;
echo date("Y-m-d H:i:s", $timestamp);
// 更改时区设置
date_default_timezone_set('America/New_York');
echo date("Y-m-d H:i:s");
// 确定两个日期之间的差异
$date1 = date_create("2021-01-01");
$date2 = date_create("2022-01-01");
$diff = date_diff($date1, $date2);
echo "Days between dates: " . $diff->days;
// 在当前日期和时间上添加几个小时
$date = date_create();
date_modify($date, '+2 hours');
echo date_format($date, 'Y-m-d H:i:s');