首頁 後端開發 php教程 PHP判断某一天在指定日期的前还是后_PHP教程

PHP判断某一天在指定日期的前还是后_PHP教程

Jul 13, 2016 am 10:33 AM
時間戳

有这么一个需求,指定日期是12月12日,在12月12号前我要执行A事件,在其后要执行B事件,怎样判断今天是在12月12日的前还是后?

程序如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

$year = 2010;

$month = 12;  // 月

$day = 12;  // 日

$timeoffset = 8; // 与格林尼治时间 GMT 的时差

list($thisyear, $thismonth, $thisday) = explode('-', date('Y-n-j', time() + $timeoffset * 3600));

if(($thismonth > $month) || ($thismonth == $month && $thisday > $day) || $thisyear > $year) {

    echo '已经过了';

} elseif ($thismonth == $month && $thisday == $day && $thisyear == $year) {

    echo '就是今天了';

} else {

    echo '还没到';

}

?>

登入後複製

下面是带注释的代码:

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

//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。

$timestamp = time();

$dateYear = date('Y', $timestamp);//当前年,依当前需要可以不需要比较,但有时也许会用到,比如你的记录不是当年要处理的

$dateMonth = date('n', $timestamp);//当前月份数字,没有前导零

$dateDay = date('j', $timestamp);//月份中的第几天,没有前导零

//剩下的就是比较了,比如你要比较的日期是 2007-03-01

$eventDate = '2007-03-01';

$eventDateArr = explode('-', $eventDate);

$eventYear = intval($eventDateArr[0]);

$eventMonth = intval($eventDateArr[1]);

$eventDay = intval($eventDateArr[2]);

//上面是年月日的拆分,根据实际情况可以调整,如果你直接可以得到就不需要这样取了。

//之后剩下的就是比较了,先比较年

if($dateYear == $eventYear) {

  //同年

  if($dateMonth == $eventMonth) {

    //同月

    if($dateDay == $eventDay) {

      //同一天,就是当前日期就是事件触发的日期

    } elseif($dateDay > $eventDay) {

      //事件已经过期了

    } else {

      //事件触发日期还没到

    }

  } else {

    //之前或之后,再需要详细判断可以在这里比较哪个月份大

  }

} else {

  //之前或之后,再需要详细判断可以在这里比较哪个年份大

}

//其实这种比较是最简单的逻辑判断,如果你在记录时间触发日期时记录的是 unix 时间戳,这里可以直接进行时间戳比较不过需要处理一下,因为时间戳是精确到秒的

//或者把你记录的日期及其后一天直接转化成 unix 时间戳,时分秒都用 0 ,和当前时间戳比较,细节判断就自己去分析吧,可用函数去查查手册里面 strtotime() ,时间相关函数参数很多,不过用过几次就熟悉了。

登入後複製

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752485.htmlTechArticle有这么一个需求,指定日期是12月12日,在12月12号前我要执行A事件,在其后要执行B事件,怎样判断今天是在12月12日的前还是后? 程序如下...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何根據當前時間戳記建立文件/資料夾並為其命名 如何根據當前時間戳記建立文件/資料夾並為其命名 Apr 27, 2023 pm 11:07 PM

如何根據當前時間戳記建立文件/資料夾並為其命名

Golang時間處理:如何在Golang中將時間戳轉換為字串 Golang時間處理:如何在Golang中將時間戳轉換為字串 Feb 24, 2024 pm 10:42 PM

Golang時間處理:如何在Golang中將時間戳轉換為字串

時間戳獲取的最佳實踐:Golang程式設計中的強大工具 時間戳獲取的最佳實踐:Golang程式設計中的強大工具 Dec 29, 2023 am 08:28 AM

時間戳獲取的最佳實踐:Golang程式設計中的強大工具

如何從Excel中的日期中刪除時間 如何從Excel中的日期中刪除時間 May 17, 2023 am 11:22 AM

如何從Excel中的日期中刪除時間

如何在 Go 中使用正規表示式匹配時間戳記? 如何在 Go 中使用正規表示式匹配時間戳記? Jun 02, 2024 am 09:00 AM

如何在 Go 中使用正規表示式匹配時間戳記?

PHP時間戳轉換為整數的方法 PHP時間戳轉換為整數的方法 Mar 20, 2024 pm 04:24 PM

PHP時間戳轉換為整數的方法

Java文件解讀:System類別的currentTimeMillis()方法用法解析 Java文件解讀:System類別的currentTimeMillis()方法用法解析 Nov 03, 2023 am 09:30 AM

Java文件解讀:System類別的currentTimeMillis()方法用法解析

php中的時間戳記怎麼轉換成時間 php中的時間戳記怎麼轉換成時間 Jan 07, 2023 pm 03:17 PM

php中的時間戳記怎麼轉換成時間

See all articles