搜索

PHP函数篇(一)---日期/时间函数篇

发布网友 发布时间:1天前

我来回答

1个回答

热心网友 时间:2分钟前

# 1、修改时区

PHP 默认的时区设置是 UTC 时间,即与格林尼治时间一致。

(1)、修改配置文件php.ini中date.timezone的属性,然后重启 Apache 服务器即可

date.timezone=Asia/Shanghai

(2)、使用 date_default_timezone_set()函数设置时区。 和php.ini中 date.timezone 属性的值相同。

date_default_timezone_set('Asia/Shanghai');//设置时区echo date('Y-m-d H:i:s');//输出的当前时间为北京时间# 2、time()函数

用来返回当前时间的 UNIX 时间戳。

date_default_timezone_set('Asia/Shanghai');//设置时区echo time() ; //输出的是当前时间的时间戳# 3.mktime()和 strtotime()函数

在 PHP 中,如果需要将日期和时间转变成 UNIX 时间戳,可以使用 mktime()函数或者 strtotime()函数。

(1)mktime()函数。

mktime(hour,minute,second,month,day,year,is_dst)

参数描述hour可选 规定小时minute可选 规定分钟second可选 规定秒month可选 规定用数字表示的月day可选 规定天year可选 规定年在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个了。is_dst可选 如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1 自 5.1.0 起,is_dst 参数被废弃 因此应该使用新的时区处理特性。例子## mktime() 函数对于日期运算和验证非常有用。自动校正越界的日期:var_dump(date("Y-m-d",mktime(0,0,0,12,36,2022)));var_dump(date("Y-m-d",mktime(0,0,0,13,1,2022)));var_dump(date("Y-m-d",mktime(0,0,0,1,1,99)));输出:string(10) "2023-01-05"string(10) "2023-01-01"string(10) "1999-01-01"## time() 函数定义和用法 time() 函数返回当前时间的 Unix 时间戳。例子### 例子1var_dump(time());var_dump(date("Y-m-d",time()));输出:int(1652613469)string(10) "2022-05-15"### 例子2$nextWeek = time() + (7 * 24 * 60 * 60);var_dump('Now:'. date('Y-m-d'));var_dump('Next Week: '. date('Y-m-d', $nextWeek)); 输出:string(16) "Now:2022-05-15"string(21) "Next Week: 2022-05-22"### 日常开发可能会用到的案例(date()+ time() + strtotime())#### 当月的天数,某月的天数$current_month_days = date('t');$some_month_days= date('t',strtotime('2023-2-6'));var_dump($current_month_days);var_dump($some_month_days);输出string(2) "31"string(2) "28"#### 这个月的第一天的日期,这个月的最后一天的日期$current_month_first_date = date('Y-m-01');$current_month_last_date= date('Y-m-d',strtotime(date('Y-m-01',strtotime('+1 month')).'-1 day'));var_dump($current_month_first_date);var_dump($current_month_last_date);输出string(10) "2022-05-01"string(10) "2022-05-31"#### 上个月第一天的日期格式,上个月最后一天的日期$last_month_start_date = date('Y-m-01',strtotime('last month'));$last_month_end_date = date('Y-m-d',strtotime(date('Y-m-01').'-1 day'));var_dump($last_month_start_date);var_dump($last_month_end_date);输出string(10) "2022-04-01"string(10) "2022-04-30"#### 下个月的第一天时间日期 ,下个月的最后一天时间日期$next_mont_start_date = date('Y-m-01',strtotime('next month'));$next_mont_end_date = date('Y-m-d',strtotime(date('Y-m-01',strtotime('+2 month')).'-1 day'));var_dump($next_mont_start_date);var_dump($next_mont_end_date);输出string(10) "2022-06-01"string(10) "2022-06-30"#### 今日开始-结束时间戳$today_start_time = strtotime(date('Y-m-d 00:00:00',time()));$today_end_time = strtotime(date('Y-m-d 23:59:59'));var_dump($today_start_time);var_dump($today_end_time);输出int(1652572800)int(1652659199)#### 本周开始-结束时间戳(2022-05-09 ----- 2022-05-15)$week_start_time = mktime(0, 0, 0, date("m"),date("d")-date("w")+1,date("Y"));$week_end_time = mktime(23,59,60,date("m"),date("d")-date("w")+7,date("Y"));var_dump($week_start_time);var_dump($week_end_time); 输出int(1652659200)int(16532000)#### 本月开始-结束时间戳(2022-05-01 ----- 2022-05-31)$month_start_time = strtotime(date('Y-m-01').'-1 day')+24*60*60;$month_end_time = strtotime(date('Y-m-01 00:00:00',strtotime('+1 month')));var_dump($month_start_time);var_dump($month_end_time);输出int(1651363200)int(1654041600)#### 本年开始时间-结束时间戳(2022-01-01 ----- 2022-12-31)$year_start_time = strtotime(date('Y-01-01 00:00:00',time()));$year_end_time = strtotime(date('Y-01-01 00:00:00',strtotime('+1 year')));var_dump($year_start_time);var_dump($year_end_time);输出int(10995200)int(1672531200)原文:https://juejin.cn/post/7097913543441252365
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top