- 404에러페이지
- javascript 바코드 생성
- asp.net core Select
- 말줄임표시
- ViewData
- 하드 윈도우 복사
- XSS PHP
- Mac Oracle
- 바코드 생성하기
- SSD 복사
- ViewBag
- 파일업로드 체크
- 타임피커
- javascript redirection
- 파일업로드 유효성체크
- 강제이동
- javascript 바코드스캔
- asp.net dropdownlist
- jquery 바코드생성
- 하드 마이그레이션
- ASP.Net Core 404
- 맥 오라클설치
- jquery 바코드
- javascript 유효성체크
- php 캐쉬제거
- django 엑셀불러오기
- asp.net Select
- 바코드 스캔하기
- TempData
- XSS방어
웹개발자의 기지개
[PHP] 날짜 관련 내용 정리 본문
PHP 와 Mysql 등으로 코딩을 할때 날짜부분을 처리할때,
보통은 간단히 처리하려고 mysql 의 칼럼을 date 형태로 2021-11-22 04:23:22 이런식으로 들어가도록 insert 처리를 할 수 있는데, 이는 나중에 날짜구간으로 구분하여 Select 문으로 땡겨올때 조금 쉽지 않는 방식으로 처리를 해야한다.
그래서, 필자는 mysql 상으로는 int형으로 그 날짜에 대하여 Timestamp 값을 넣어서, reg_date >= 1634401376 이런식으로 손쉽게 날짜 구간 검색이 편리하도록 코딩한다.
아래의 간단한 예제를 참고하여 날짜 관련 내용을 DB에 넣고 불러올때 참고하면 좋을듯하다.
Timestamp 값을 만드는 함수로 mktime() 과 strtotime() 를 유용하게 사용할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?
echo date('Y-m-d H:i', 1634401376);
echo "<br><br>";
$time = mktime(2,47,0,10,16,2021);
echo $time;
echo "<br><br>";
echo date('Y-m-d H:i', $time);
?>
|
cs |
Timestamp 값형태로 만약 오늘날짜까지의 쿼리를 불러온다고 한다면,
SELECT UNIX_TIMESTAMP('2022-01-26') ;
1643122800
AAA 테이블에 날짜칼럼값이 2022-01-26 이나 2021-10-26 날짜 형태일때,
$time1 = mktime(0,0,0,date('m'),date('d')+1,date('Y'));
Select * from AAA where UNIX_TIMESTAMP('날짜칼럼') < $time1;
SELECT UNIX_TIMESTAMP('2022-01-26 23:00:00')
1643205600
echo strtotime('2022-01-26 01:15:00');
1643127300
$time = time();
echo date("Y-m-d",strtotime("-1 day", $time))." 하루 전(어제)<br>";
echo date("Y-m-d",strtotime("now", $time))." 현재<br>";
echo date("Y-m-d",strtotime("+1 day", $time))." 하루 후(내일)<br>";
echo date("Y-m-d",strtotime("+1 week", $time))." 일주일 후<br>";
echo date("Y-m-d",strtotime("-1 month", $time))." 한달 전<br>";
echo date("Y-m-d",strtotime("+1 month", $time))." 다음달<br>";
echo date("Y-m-d",strtotime("+6 month", $time))." 6달후<br>";
echo date("Y-m-d",strtotime("+12 month", $time))." 12달후<br>";
echo date("Y-m-d",strtotime("next Thursday", $time))." 다음주 목요일<br>";
echo date("Y-m-d",strtotime("last Monday", $time))." 지난 월요일<br>";
echo date("Y-m-d",strtotime("10 September 2000", $time))." 2000년 9월 10일 <br>";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?
// 일주일내에
$reg_date = time();
//echo date('Y-m-d',strtotime("-7 day",$reg_date));
$time = strtotime("-7 day",$reg_date);
$query = "select count(*) as cnt from board_qna2 where write_date >= $time";
$aRes1 = mysql_query($query) or die("게시판 2 정보 얻기 실패");
$aRow1 = mysql_fetch_array($aRes1);
if ($aRow1[cnt] > 0) {echo "<i class='xi-new xi-x dec01' style='color:#fff;'></i>";}
$query = "select count(*) as cnt from board_qna2 where write_date >= $time";
$aRes2 = mysql_query($query) or die("게시판 3 정보 얻기 실패");
$aRow2 = mysql_fetch_array($aRes2);
if ($aRow1[cnt] > 0) {echo "<i class='xi-new xi-x dec01' style='color:#fff;'></i>";}
?>
|
cs |
$d = mktime(0,0,0, date("m"), 1, date("Y")); //이번달 1일
$prev_month = strtotime("-1 month", $d); //한달전
echo date("Y-m-01", $prev_month); //지난달 1일
echo date("Y-m-t", $prev_month); //지난달 말일
'PHP' 카테고리의 다른 글
[PHP] 다량의 문자열내용중에 특정 문자열 교체하기 (0) | 2022.05.02 |
---|---|
[PHP] 파일 다운로드시 ERR_INVALID_RESPONSE 에러날때 (0) | 2022.04.01 |
[PHP] 배열값 가중치별로 랜덤값 얻어오기 (0) | 2021.09.09 |
[PHP] 노캐쉬 기능 적용하기 (No Cache) (0) | 2021.08.12 |
[PHP] CSRF 공격방어 작업하기 (0) | 2021.07.25 |