날짜를 표기하기 위해서는  date() 함수를 사용하면 간단하게 날짜를 구할 수 있다.

보통 $date = date('Y-m-d H:i:s'); 이렇게 하면 모두 출력된다.

또한 2017-04-04가 아니라,  2017.04.04로 표시하고 싶다면 쉽다.


- 대신 .으로 대체해주면 된다.


$abcd = date('Y.m.d H:i:s');

이러면,

2017.04.04 11:30:20     로 표시된다.

그리고 날짜만 필요하다면, 둘로 쪼개서 사용하면된다.


$datetime = explode(' ', $abcd);     // ' ' 공백이 구분점이 되어 배열에 저장된다.

$date = $datetime[0];                  // 첫 번째 요소가 날짜        

$time = $datetime[1];                  // 두 번째 요소가 시간



이렇게 하면 시간과 날짜를 나누어 사용할 수 있다.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

추가적으로 2017.07.01 11:00:00  형식말고,  - 이나 /로 하고 싶다면?

쉽다.

그냥 . 대신 - 나 /를 넣어주면 된다.


<!DOCTYPE html>
<html>
<body>

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>"
?>


</body>
</html>


결과는 


Today is 2017/06/30
Today is 2017.06.30
Today is 2017-06-30 


https://www.w3schools.com/php/php_date.asp


또한 추가적으로,


.으로 변경을 해서 사용하는데, 표준이 아니므로 날짜로 인식하지 않을 때가 있다.

- 또는 /는 날짜로 인식이 잘 되는데 . 은 잘 안된다.

이때는 날짜가 아니라 문자로 인식되는데, 이 때는 . 을 - 로 아래와 같이 변경한 뒤에 사용해야 한다.


$replace_date=str_replace(".","-",$date);


게시판 구현 시, 현재 날짜로부터 30일 이전에 등록된 게시물일 경우 new 표시를 하고자 한다면,

현재 시간과 등록된 게시물의 시간을 각각 timestamp로 변경을 한 뒤, 차이를 구한다.

이 결과는 초로 계산되므로, 


30일 동안의 초보다 작다면? 30일이 안 된 글이므로 new를 표시,

30일 동안의 초보다 크다면? 30일이 지난 글이므로 new를 표시하지 않는다. 즉, if 조건식에는


30일 동안의 초를 구한다. 


60 * 60 * 24가 하루의 총 초이므로, 30을 곱해야 30일이 되겠다.

다음과 같이 조건식을 작성하면 된다.


if(time() - strtotime($date) <= 60 * 60 * 24 * 30) { .... }

와 같이 하면 된다.

time() : (현재) 날짜 시간.
strtotime() : (매개변수로 들어간 변수의) 날짜 시간.



Posted by sungho88
,