这篇文章主要介绍了怎么用PHP将年月日转换为不同的日期格式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用PHP将年月日转换为不同的日期格式文章都会有所收获,下面我们一起来看看吧。
日期和时间的概念
在介绍如何使用PHP处理日期和时间之前,首先要理解日期和时间的概念。在计算机系统中,日期和时间通常是以数字的形式表示的。年份通常由4位数字表示,例如2019年;月份通常用1-12之间的数字表示,例如3月表示为3;日通常用1-31之间的数字表示,例如5日表示为5。而时间通常以小时、分钟和秒来表示,例如12点30分35秒表示为12:30:35。
在PHP中,日期和时间通常是以Unix时间戳的形式表示的。Unix时间戳是从格林威治时间1970年1月1日00:00:00开始的秒数。因此,Unix时间戳为0代表1970年1月1日00:00:00,而Unix时间戳为1546322400代表2019年1月1日00:00:00。
将年月日转换为Unix时间戳
在PHP中,可以使用strtotime()函数将字符串日期和时间转换为Unix时间戳。strtotime()函数的语法如下:
strtotime(string $time [, int $now = time() ])
其中$time参数是包含日期和时间的字符串,$now参数是可选的,表示当前时间的Unix时间戳。如果不指定$now参数,则默认为当前时间的Unix时间戳。例如:
$date = "2019-01-01"; $timestamp = strtotime($date); echo $timestamp; // 输出1546300800
上述代码中,$date变量包含了日期字符串"2019-01-01",将其作为参数传递给strtotime()函数,将其转换为Unix时间戳,最终输出结果为1546300800,表示2019年1月1日00:00:00的Unix时间戳。
将Unix时间戳转换为日期字符串
在PHP中,可以使用date()函数将Unix时间戳转换为日期字符串。date()函数的语法如下:
date(string $format [, int $timestamp = time() ])
其中$format参数是格式化字符串,指定如何将Unix时间戳转换为日期字符串。$timestamp参数是可选的,表示要被格式化的Unix时间戳。如果不指定$timestamp参数,则默认为当前时间的Unix时间戳。例如:
$timestamp = 1546300800; $date = date("Y年m月d日", $timestamp); echo $date; // 输出2019年01月01日
上述代码中,$timestamp变量包含了Unix时间戳1546300800,将其作为参数传递给date()函数,并使用格式化字符串"Y年m月d日"将其转换为日期字符串$datetime,最终输出结果为2019年01月01日。
将日期字符串转换为日期对象
PHP 5.2.0及以上版本中,可以使用date_create()函数将字符串日期转换为日期对象。date_create()函数的语法如下:
date_create(string $time, DateTimeZone $timezone = null)
其中$time参数是包含日期和时间的字符串,$timezone参数是可选的,表示日期和时间的时区。如果不指定$timezone参数,则默认为服务器的时区。例如:
$datestr = "2019-01-01 12:30:00"; $datetime = date_create($datestr); print_r($datetime); // 输出:DateTime Object ( [date] => 2019-01-01 12:30:00.000000 [timezone_type] => 3 [timezone] => Asia/Shanghai )
上述代码中,$datestr变量包含了日期和时间字符串"2019-01-01 12:30:00",将其作为参数传递给date_create()函数,并将返回的日期对象保存到$datetime变量中。最终打印出$datetime变量的内容为:
DateTime Object ( [date] => 2019-01-01 12:30:00.000000 [timezone_type] => 3 [timezone] => Asia/Shanghai )
通过输出结果可以看到,$datetime包含了日期和时间,时区等信息。
将日期对象转换为日期字符串
在PHP中,可以使用DateTime类提供的DateTime::format()方法将日期对象转换为日期字符串。DateTime::format()方法的语法如下:
public string DateTime::format(string $format)
其中$format参数是格式化字符串,指定如何将日期对象转换为日期字符串。例如:
$datestr = "2019-01-01 12:30:00"; $datetime = date_create($datestr); echo $datetime->format("Y-m-d H:i:s"); // 输出:2019-01-01 12:30:00
上述代码中,$datestr变量包含了日期和时间字符串"2019-01-01 12:30:00",将其作为参数传递给date_create()函数,并将返回的日期对象保存到$datetime变量中。最终使用$datetime->format()方法将日期对象转换为格式化字符串"Y-m-d H:i:s",并输出结果为2019-01-01 12:30:00。