PHP 标准的日期格式

date("Y-m-d H:i:s");

 

PHP 简单的日期加减计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
     date_default_timezone_set( 'PRC' ); //默认时区
     echo "今天:" , date ( "Y-m-d" ,time()), "\n" ;
     echo "今天:" , date ( "Y-m-d" , strtotime ( "18 june 2008" )), "\n" ;
     echo "昨天:" , date ( "Y-m-d" , strtotime ( "-1 day" )), "\n" ;
     echo "明天:" , date ( "Y-m-d" , strtotime ( "+1 day" )), "\n" ;
     echo "一周后:" , date ( "Y-m-d" , strtotime ( "+1 week" )), "\n" ;
     echo "一周零两天四小时两秒后:" , date ( "Y-m-d G:H:s" , strtotime ( "+1 week 2 days 4 hours 2 seconds" )), "\n" ;
     echo "下个星期四:" , date ( "Y-m-d" , strtotime ( "next Thursday" )), "\n" ;
     echo "上个周一:" . date ( "Y-m-d" , strtotime ( "last Monday" )). "\n" ;
     echo "一个月前:" . date ( "Y-m-d" , strtotime ( "last month" )). "\n" ;
     echo "一个月后:" . date ( "Y-m-d" , strtotime ( "+1 month" )). "\n" ;
     echo "十年后:" . date ( "Y-m-d" , strtotime ( "+10 year" )). "\n" ;
?>

运行结果:

1
2
3
4
5
6
7
8
9
10
11
今天:2017-11-06
今天:2008-06-18
昨天:2017-11-05
明天:2017-11-07
一周后:2017-11-13
一周零两天四小时两秒后:2017-11-15 22:22:42
下个星期四:2017-11-09
上个周一:2017-10-30
一个月前:2017-10-06
一个月后:2017-12-06
十年后:2027-11-06

 

PHP 进阶的日期加减计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
     // 默认时区
     date_default_timezone_set( 'PRC' );
     
     echo "今天: " , date ( 'Y-m-d H:i:s' ), "\n" ;       // 输出当前时间
     echo "明天: " , date ( 'Y-m-d H:i:s' , strtotime ( '+1 day' )), "\n" ;        // 输出明天时间
     
     //strtotime 可以接受第二个参数,类型timestamp为指定日期
     echo date ( 'Y-m-d H:i:s' , strtotime ( "+1 day" , strtotime ( '2017-11-11' ))), "\n" ;
     
     
     // 这里+1 day 可以修改参数1为任何想需要的数 
     // day也可以改成year(年)month(月)hour(小时)minute(分)second(秒)
     echo date ( 'Y-m-d H:i:s' , strtotime ( "+1 day +1 hour +1 minute" )), "\n" ;
?>

运行结果:

今天: 2017-11-06 18:58:04
明天: 2017-11-07 18:58:04
2017-11-12 00:00:00
2017-11-07 19:59:04

 

PHP 高级的计算日期时间差

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
     // 默认时区
     date_default_timezone_set( 'PRC' );
 
     echo date ( "Y-m-d H:i:s" ), "\n" ;
 
     // 日期天数相加函数
     echo date ( 'Y-m-d' , strtotime ( '+1 day' , strtotime ( '2016-09-12' ))), "\n\n" ;
 
     echo strtotime ( '2016-09-12' ), "\n" ;
     echo date ( "Y-m-d" , '1473609600' ), "\n" ;
     echo date ( "Y-m-d" , '1573609600' ), "\n" ;
 
     // 日期天数相加函数
     $d = "2016-09-12 10:12:20" ;
     echo date ( "Y-m-d" , strtotime ( "$d   +1   day" )), "\n\n" ;  
 
     // 把日期转换成时间截
     function date2time( $d ){
         $year =((int) substr ( "$d" ,0,4));  //取得年份
         $month =((int) substr ( "$d" ,5,2)); //取得月份
         $day =((int) substr ( "$d" ,8,2));   //取得几号
         return mktime (0,0,0, $month , $day , $year );
     }
     echo date2time( "2016-09-12" ), "\n\n" ;
 
     $date_1 = "2066-09-12" ;
     $date_2 = "2016-09-12" ;
     $Date_List_a1 = explode ( "-" , $date_1 );
     $Date_List_a2 = explode ( "-" , $date_2 );
     $d1 = mktime (0,0,0, $Date_List_a1 [1], $Date_List_a1 [2], $Date_List_a1 [0]);
     $d2 = mktime (0,0,0, $Date_List_a2 [1], $Date_List_a2 [2], $Date_List_a2 [0]);
     $Days = round (( $d1 - $d2 )/3600/24);
     echo "$date_2 -> $date_1 相差: $Days 天" , "\n" ;
?>

运行结果:

1
2
3
4
5
6
7
8
9
10
11
2017-11-06 19:13:02
2016-09-13
 
1473609600
2016-09-12
2019-11-13
2016-09-13
 
1473609600
 
2066-09-12 -> 2016-09-12 相差: 18262 天