프리랜서 웹디자이너 웹퍼블리셔RELATION

RELATION 로고

PHP 웹프로그래밍

[MYSQL함수] date(), mktime()

2013.05.24
북마크 작성자 정보
<?
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('it is the jS day.'); // It is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s m is month'); // 17:03:17 m is month
$today = date("H:i:s"); // 17:16:17
?>


----------------------------------------------------------------------
PHP 날짜 함수 정리 ( Write By Yaku)

오늘로부터 5일 후
echo date("Y-m-d",strtotime("+5 day"));

다음은 오늘로부터 3일 전이 되겠습니다.
echo date("Y-m-d",strtotime("-3 day"));

오늘로부터 6주 전
$calyoil = 5 - date("w"); //현재 요일에서 금요일을 구하기 위한 가감
$needday = strtotime("-6 week"); // 6주전
$needday = date("Y-m-d" , strtotime("$calyoil days",$needday));
echo $needday;

윤년
if(29==date('t',mktime(0,0,0,2,1,$year))
echo "윤년";
else echo "윤년아님";


---------------------------------------------------------------------
mktime(시,분,초,월,일,년도)

그 달의 마지막 날짜 가지고 오기
$lastday = date('t',mktime(0,0,1,$month,1,$year));

금주의 시작일 구하기
$now=date("w");
$m=$now-1;
$start=date("Y-n-d",strtotime("-$m day"));


----------------------------------------------------------------------
JS 날짜 정리 ..
Month ( 0 ~ 11까지 정의 된다 ) 현재월을 표시하려면 month -1 하여라 ..
날짜 객체 생성 var today = new Date( 년 , 월 , 일 ) ;
날짜 년 가지고 오기 today.getYear();
날짜 월 가지고 오기 today.getMonth(); ( 현재월 가지고 올경우 +1 )
날짜 일 가지고 오기 today.getDate(); (day 가 아니 getDate 이다)
날짜 월 짜리수 맞추기 위한 if 문 = parseInt(월) < 10 ? “-“ + parseInt(월) : parseInt(월);


20170525
//============================================================
PHP 에서 날짜를 다루는데는 주로 date(), strtotime(), mktime() 의 세가지 함수를 사용 합니다. 각각의 사용법과 몇가지 응용에 대해서 알아보도록 하겠습니다.



1. date() 함수.


string date ( string $format [, int $timestamp ] )


정수형으로 주어지는 timestamp나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp는 선택적이고, 기본값은 time()의 값입니다. 지원되지 않는 포맷 문자는 그대로 출력됩니다.


<?php
$dateString = date("Y-m-d", time());
echo $dateString;
?>



결과)
2017-01-10



2. strtotime() 함수.


int strtotime ( string $time [, int $now = time() ] )


주어진 날짜 형식의 문자열을 1970년 1월 1일 0시 부서 시작하는 유닉스 타임스탬프로 변환합니다. 두번째 인자가 주어지면 주어진 타임스탬프를 기준으로 계산되어 집니다. 날짜가 주어지지 않고 변화량만 주어지면 로컬 타임이 사용됩니다. +1 day, +1 week 등이 사용될 수 있고, 음수값도 사용됩니다.


<?php
$timestamp = strtotime("+1 week");
echo date("Y-m-d", $timestamp), "<br/>";
$timestamp = strtotime("2016-12-01 +1 week");
echo date("Y-m-d", $timestamp), "<br/>";
?>



결과)
2017-01-17
2016-12-08


3. mktime() 함수.


int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )


인자로 주어진 값(시,분,초,월,일,년)에 대응하는 타임스탬프를 반환합니다.


<?php
$timestamp = mktime(0, 0, 0, 1, 1, 2017);
echo date('Y-m-d', $timestamp);
?>


결과)

2017-01-01


4. 사용 예제 입니다.


- 특정월의 마지막 날짜를 구하는 방법입니다.



방법은 date함수의 포맷문자열 't'를 사용합니다. 't'는 주어진 월의 일수를 구하는 형식 문자 입니다.


$lastDay = date('t', strtotime("2017-01-01"));



타임스탬프는 mktime 으로 구할수도 있습니다.


$lastDay = date('t', mktime(0, 0, 0, 1, 1, 2017));



mktime함수의 인자는 순서대로 시간, 분, 초, 월, 일, 년도 입니다.




- 특정 날짜의 요일을 구하는 방법 입니다.



$day = "2017-01-10";


date 함수의 'w' 포맷 문자는 0부터 6까지의 숫자값을 반환합니다. 순서대로 일~토 를 나타냅니다.



$weekString = array("일", "월", "화", "수", "목", "금", "토");
echo($weekString[date('w', strtotime($day))]);


- 하루전 날짜를 구하는 방법 입니다.


$day = "2017-01-10"; 의 하루전 날짜인 "2017-01-09" 를 문자열로 구하려고 합니다.


$beforeDay = date("Y-m-d", strtotime($day." -1 day"));


날짜 뒤에 "+1 day", "+1 month", "+1 year", "+1 week" 등의 문자열을 붙여서 날짜를 계산할 수 있습니다.




5. date 함수에서 사용할 수있는 포맷문자열 입니다.


--- 일 ---
d : 일, 앞에 0이 붙는 2 숫자 [ 01에서 31 ]
D : 요일 글자 표현, 3 문자 [ Mon에서 Sun ]
j : 앞에 0이 붙지 않는 일 [ 1에서 31 ]
l : (소문자 'L') 요일의 완전한 글자 표현 [ Sunday에서 Saturday ]
N : 요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) [ 1(월요일)에서 7(일요일) ]
S : 일 영어 접미사, 2 문자 [ st, nd, rd, th. j와 같이 사용하기 좋음. ]
w : 요일 숫자 표현 [ 0(일요일)에서 6(토요일) ]
z : 해당 연도 일차 [ (0에서 시작) 0에서 365 ]


--- 주 ---
W : ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) [ 예시: 42 (그 해의 42번째 주) ]


---월 ---
F : January나 March 같은 월의 완전한 글자 표현 [ January에서 December ]
m : 0이 붙는 월 숫자 표현 [ 01에서 12 ]
M : 월의 축약 글자 표현, 3 문자 [ Jan에서 Dec ]
n : 0이 붙지 않는 월 숫자 표현 [ 1에서 12 ]
t : 주어진 월의 일 수 [ 28에서 31 ]


--- 연 ---
L : 윤년 여부 [ 윤년엔 1, 그 외엔 0 ]
o : ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) [ 예시: 1999나 2003 ]
Y : 연도의 완전한 숫자 표현, 4 숫자 [ 예시: 1999나 2003 ]
y : 도의 두 숫자 표현 [ 예시: 99나 03 ]


--- 시간 ---
a : 오전과 오후의 소문자 [ am 또는 pm ]
A : 오전과 오후의 대문자 [ AM 또는 PM ]
B : 스와치 인터넷 시간 [ 000에서 999 ]
g : 0이 붙지 않는 12시간 형식 시 [ 1에서 12 ]
G : 0이 붙지 않는 24시간 형식 시 [ 0에서 23 ]
h : 0이 붙는 12시간 형식 시 [ 01에서 12 ]
H : 0이 붙는 24시간 형식 시 [ 00에서 23 ]
i : 0이 붙는 분 [ 00에서 59 ]
s : 초, 0이 붙음 [ 00에서 59 ]
u : 마이크로초 (PHP 5.2.2에서 추가) [ 예시: 54321 ]


--- 시간대 ---
e : 시간대 식별자 (PHP 5.1.0에서 추가) [ 예시: UTC, GMT, Atlantic/Azores ]
I : (대문자 i) 일광 절약 시간 여부 [ 일광 절약 시간이면 1, 아니면 0 ]
O : 그리니치 시간(GMT)과 시차 [ 예시: +0200 ]
P : 시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 [ 예시: +02:00 ]
T : 시간대 축약어 [ 예시: EST, MDT ... ]
Z : 시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 [ -43200에서 50400 ]


--- 날짜/시간 표현 ---
c : ISO 8601 날짜 (PHP 5에서 추가) [ 2004-02-12T15:19:21+00:00 ]
r : ≫ RFC 2822 형식 날짜 [ 예시: Thu, 21 Dec 2000 16:01:07 +0200 ]
U : 유닉스 에포치(January 1 1970 00:00:00 GMT)부터 초수 [ time() 참조 ]


출처
http://byseob.textcube.com/139
http://pentode.tistory.com/91

이 포스트 공유하기

전체목록