본문 바로가기

개발/PHP, Mysql

PHP 날짜/시간 비교 하기

오늘 날짜가 시작 날짜, 종료 날짜를 기준으로 당일 날짜와 시간이 진행중 인지, 종료 되었는지, 진행예정 중인지 비교하는 소스 코드 입니다.


본론으로 넘어가서 해당 소스코드입니다.


mysql 쿼리문으로 날짜를 검색하는 방법에 대해서는 지난 포스팅을 보시기 바랍니다.


PHP, Mysql 날짜 관련 함수 및 Datetime 검색하기



소스코드를 보시면 $start_date_str, $end_date_str 부분에 시작되는 날짜와, 시간 종료되는 날짜와 시간을 

기준으로 현재 날짜가 시작 시간과 종료 시간안에 포함되는지, 지났는지, 아직인지 조건문으로 나눠서 판별합니다.

이때 $start_date_str, $end_date_str에는 mysql의 데이터 형식인 datetime을 넣어주셔도 사용이 가능합니다.




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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
$start_date_str = "2017-09-20 10:30:00";
$end_date_str = "2017-09-22 11:00:00";
 
$start_date = strtotime($start_date_str);
$end_date = strtotime($end_date_str);
 
$current_date = strtotime(date("Y-m-d H:i:s"));
 
echo 'start_date : '.$start_date_str.'<br/>';
echo 'end_date : '.$end_date_str.'<br/>';
echo 'current_date : '.date("Y-m-d H:i:s"$current_date)."<br/>";
 
$start_diff = ($current_date - $start_date/ 3600;
$end_diff = ($current_date - $end_date/ 3600;
echo "start diff : ".(int)$start_diff." / end_diff : ".(int)$end_diff."<br/>";
 
if($start_diff >= 0 && $end_diff < 0) {
    echo '현재 날짜가 진행중 입니다. <br/>';
else if ($start_diff < 0 && $end_diff <0) {
    echo '현재 날짜가 진행 예정 중 입니다. <br/>';
else {
    echo '현재 날짜가 종료 되었습니다. <br/>';
}
 
 
echo '<br/><br/>';
$start_date_str = "2017-09-20 10:00:00";
$end_date_str = "2017-09-20 10:30:00";
 
$start_date = strtotime($start_date_str);
$end_date = strtotime($end_date_str);
 
$current_date = strtotime(date("Y-m-d H:i:s"));
 
echo 'start_date : '.$start_date_str.'<br/>';
echo 'end_date : '.$end_date_str.'<br/>';
echo 'current_date : '.date("Y-m-d H:i:s"$current_date)."<br/>";
 
$start_diff = ($current_date - $start_date/ 3600;
$end_diff = ($current_date - $end_date/ 3600;
echo "start diff : ".(int)$start_diff." / end_diff : ".(int)$end_diff."<br/>";
 
if($start_diff >= 0 && $end_diff < 0) {
    echo '현재 날짜가 진행중 입니다. <br/>';
else if ($start_diff < 0 && $end_diff <0) {
    echo '현재 날짜가 진행 예정 중 입니다. <br/>';
else {
    echo '현재 날짜가 종료 되었습니다. <br/>';
}
 
 
 
 
echo '<br/><br/>';
$start_date_str = "2017-09-22 10:00:00";
$end_date_str = "2017-09-22 10:30:00";
 
$start_date = strtotime($start_date_str);
$end_date = strtotime($end_date_str);
 
$current_date = strtotime(date("Y-m-d H:i:s"));
 
echo 'start_date : '.$start_date_str.'<br/>';
echo 'end_date : '.$end_date_str.'<br/>';
echo 'current_date : '.date("Y-m-d H:i:s"$current_date)."<br/>";
 
$start_diff = ($current_date - $start_date/ 3600;
$end_diff = ($current_date - $end_date/ 3600;
echo "start diff : ".(int)$start_diff." / end_diff : ".(int)$end_diff."<br/>";
 
if($start_diff >= 0 && $end_diff < 0) {
    echo '현재 날짜가 진행중 입니다. <br/>';
else if ($start_diff < 0 && $end_diff <0) {
    echo '현재 날짜가 진행 예정 중 입니다. <br/>';
else {
    echo '현재 날짜가 종료 되었습니다. <br/>';
}
 
 
?>
cs


결과


#php날짜비교#php시간비교