PHP 日期/时间函数参考

2021-03-17  本文已影响0人  xuxin2020

1.checkdate - 验证一个日期的合法性

checkdate (int $month , int $day , int $year )   
var_dump(checkdate(8, 31, 2019)); ===>bool(true)
var_dump(checkdate(2, 29, 2019)); ===>bool(false)

2.date_add - 给一个 DateTime 对象增加一定量的天,月,年,小时,分钟 以及秒。

date_sub - 对一个 DateTime 对象减去一定量的 日、月、年、小时、分钟和秒。

date_add (DateTime $object , DateInterval $interval)   
参数  必需的 描述
object  是   由 date_create() 返回的 DateTime 类型的对象。此函数会修改这个对象。
interval    是   DateInterval 对象。

$date = date_create('2019-02-05');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');   ===> 2019-02-15

3.date_create - 返回一个新的 DateTime 对象

date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) 

$date = date_create('2019-01-01');
echo date_format($date, 'Y-m-d'); ===>2019-01-01

4.date_date_set - 设置 DateTime 对象的日期

date_date_set (DateTime $object , int $year , int $month , int $day )   

$date = date_create();
date_date_set($date, 2019, 2, 3);
echo date_format($date, 'Y-m-d'); ===> 2019-02-03

5.date_diff - 返回两个DateTimeInterface对象之间的差异。

date_diff (  DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool $absolute = FALSE ] )
参数:      必需
$absolute   否   差异返回是否强制为正

$datetime1 = date_create('2019-10-11');
$datetime2 = date_create('2019-10-13');
//$interval = $datetime1->diff($datetime2);
$interval =date_diff($datetime1,$datetime2);
print_r($interval);

DateInterval Object
(
[y] => 0
[m] => 0
[d] => 2
[h] => 0
[i] => 0
[s] => 0
[f] => 0
[weekday] => 0
[weekday_behavior] => 0
[first_last_day_of] => 0
[invert] => 0   //0 正 1 负
[days] => 2
[special_type] => 0
[special_amount] => 0
[have_weekday_relative] => 0
[have_special_relative] => 0
)

6.date_format - 返回根据给定格式格式化的日期

date_format (  DateTimeInterface $object , string $format  )   

$date = date_create();
echo date_format($date, 'Y-m-d H:i:s');

7.date_modify - 修改日期时间对象的值

date_modify ( DateTime $object , string $modify  )   

$date = date_create('2019-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d'); ===> 2019-12-13

8.date_parse - 返回关联数组,其中包含有关给定日期的详细信息

print_r(date_parse("2019-12-12 10:02:00"));

Array
(
[year] => 2019
[month] => 12
[day] => 12
[hour] => 10
[minute] => 2
[second] => 0
[fraction] => 0
[warning_count] => 0
[warnings] => Array
(
)

[error_count] => 0
[errors] => Array
(
)

[is_localtime] =>
)

9.date_time_set - 设置 DateTime 对象的时间

date_time_set ( DateTime $object , int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] )

$date = date_create('2019-01-01');
date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') ===>2019-01-01 14:55:00

date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') ===>2019-01-01 14:55:24

10.date_timestamp_get - 获取Unix时间戳

date_timestamp_get ( DateTimeInterface $object  )   

$date = date_create('2021-01-01 12:22:33');
echo date_timestamp_get($date);===> 1609474953

11.getdate - 返回一个根据 timestamp 得出的包含有日期信息的关联数组。如果没有给出时间戳则认为是当前本地时间。

$today = getdate();
print_r($today);

Array
(
[seconds] => 35
[minutes] => 4
[hours] => 15
[mday] => 18
[wday] => 4
[mon] => 3
[year] => 2021
[yday] => 76
[weekday] => Thursday
[month] => March
[0] => 1616051075
)

12.strtotime - 将任何字符串的日期时间描述解析为 Unix 时间戳

strtotime ( string $time [, int $now = time() ] )  

echo strtotime("now"), "<br/>";
echo strtotime("10 September 2000"), "<br/>";
echo strtotime("+1 day"), "<br/>";
echo strtotime("+1 week"), "<br/>";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "<br/>";
echo strtotime("next Thursday"), "<br/>";
echo strtotime("last Monday"), "<br/>";
上一篇下一篇

猜你喜欢

热点阅读