> 백엔드 개발 > PHP 튜토리얼 > PHP 날짜 쿼리 기능 실제 코드

PHP 날짜 쿼리 기능 실제 코드

WBOY
풀어 주다: 2016-07-25 08:54:10
원래의
1438명이 탐색했습니다.
  1. date_default_timezone_set('PRC'); //기본 시간대

  2. echo "오늘:", date ("Y-m-d",time()),"
    ";
  3. echo "오늘:",date("Y-m-d",strtotime("18 June 2008")),"
    ";
  4. echo "어제:",date("연월일",strtotime("-1일")), "
    "
  5. echo "내일:",date("연월일",strtotime(" 1일")), "
    ";
  6. echo "1주일 후:",date("Y-m-d",strtotime(" 1주")), "
    ";
  7. echo "1주 0 2일 4시간 2초 후:",date("Y-m-d G:H:s",strtotime(" 1주 2일 4시간 2초")), "
    "
  8. echo " 목요일:",date("Y-m-d",strtotime("다음 목요일")), "
    "
  9. echo "지난 월요일:".date("Y-m-d",strtotime("last Monday" ))."
    ";
  10. echo "1개월 전:".date("Y-m-d",strtotime("지난달"))."
    ";
  11. echo " 1개월 전 이후: ".date("Y-m-d",strtotime(" 1개월"))."
    ";
  12. echo "10년 후:".date("Y-m-d",strtotime(" 10 year") )."
    ";
  13. $a = date("w",time()); //오늘의 요일을 가져옵니다
  14. $startweekdate =date("Y-m-d H :i:s ",strtotime($today)-($a-1)*24*3600); //이번 주 월요일 가져오기
  15. $endweekdate =date("Y-m-d H:i:s",strtotime( $today) (7 -$a 1)*24*3600); //이번 주의 마지막 날을 구해 다음 주의 첫날이 됩니다
  16. $endnextweekdate=date("Y-m-d",strtotime($endweekdate) ) 7*24*3600); //다음주 마지막 날
  17. ?>
  18. $d = time() //보류일
  19. $ w = date("w",$d); //오늘은 무슨 요일인가요?

  20. $d0 = date("Y-m-d",strtotime("-$w day",$d )); //주 시작
  21. $d6 = date("Y-m-d",strtotime((6-$w)." day",$d)) //주말
  22. ?>
  23. $ d = time(); //처리할 날짜
  24. $w = date("w",$d) //이 요일은 무엇입니까
  25. $d0 = mktime (0,0,0,date("m"),date("d") - $w,date("Y"));//주의 시작

  26. $d0 = mktime (0,0,0 ,date("m"),date("d") - $w 6,date("Y"));//주말
  27. ?> ;
  28. $date = 시간();

  29. $w = 날짜("w",$d)

  30. $d0 = 날짜( "Y-m-d",strtotime("-$w day",$ date)); //주의 시작
  31. $d6 = date("Y-m-d",strtotime((6-$w)." day",$date )); //주말
  32. ?>
  33. $date1 = date("Y-m-d",strtotime("Sunday")) //주의 시작
  34. $date2 = date("Y-m-d" ,strtotime("토요일")); //주말
  35. $ date1 = date("Y-m-d",strtotime("지난 일요일")) //지난 주의 시작
  36. $date2 = date(" Y-m-d",strtotime("last Saturday")); //지난 주의 끝
  37. //시스템의 연도 및 월 가져오기
  38. $tmp_date=date("Ym");
  39. //Cut 한 해를 마무리
  40. $tmp_year=substr($tmp_date,0,4);
  41. // 한 달을 잘라내세요
  42. $tmp_mon =substr($tmp_date,4,2);
  43. $tmp_nextmnoth= mktime(0,0,0,$tmp_mon 1,1,$tmp_year);
  44. $tmp_forwardmnoth=mktime (0,0,0,$tmp_mon-1,1,$tmp_year);
  45. //가져오기 이번 달의 다음 달
  46. $fm_next_mnoth=date("Ym",$tmp_nextmonth);
  47. / /이번 달의 이전 달 가져오기
  48. $fm_forward_mnoth=date("Ym",$tmp_forwardmonth) ;
  49. ?>
  50. $d=array("일","一","둘","셋","넷","다섯","여섯");
  51. $whatday="week".$d[date("w",strtotime($today))]; //오늘 요일 가져오기
  52. $time = abs((strtotime("2008- 12-25") - strtotime(date("Y-m-d")))/86400);/두 날짜 사이의 일수 차이를 구합니다
  53. ?>
코드 복사

각 유형에 대해 값 범위를 갖고 날짜를 지정합니다. 시간 값의 유효한 형식은 7.3.6 날짜 및 시간 유형에 설명되어 있습니다.

다음은 날짜 함수를 사용한 예입니다. date_col 값이 지난 30일 이내인 모든 레코드를 선택합니다.

  1. mysql> 테이블에서 항목 선택
  2. WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
코드 복사

DAYOFWEEK(날짜) 날짜의 요일 인덱스를 반환합니다(1=일요일, 2=월요일, ...7=토요일). 이 인덱스 값은 ODBC 표준에 해당합니다.

  1. mysql> DAYOFWEEK('1998-02-03')
코드 복사
WEEKDAY(날짜) 날짜의 요일 인덱스를 반환합니다(0=월요일, 1=화요일, ...6=일요일).

  1. mysql> WEEKDAY('1997-10-04 22:23:00')
  2. -> WEEKDAY('1997-11-05');
  3. -> 2
코드 복사
DAYOFMONTH(날짜) 1~31 범위에서 날짜에 해당하는 월의 일자를 반환합니다.

    mysql> DAYOFMONTH('1998-02-03')
  1. 코드 복사
DAYOFYEAR(날짜) 1~366 범위에서 날짜에 대한 연도의 일자를 반환합니다.

mysql> DAYOFYEAR('1998-02-03')
    ->
  1. 코드 복사
MONTH(날짜) 1부터 12까지의 범위에서 날짜의 월을 반환합니다.

mysql> MONTH('1998-02-03')
    -> 2
  1. 코드 복사
DAYNAME(날짜) 날짜에 대한 요일 이름을 반환합니다.

mysql> DAYNAME("1998-02-05")
    ->
  1. 코드 복사
MONTHNAME(날짜) 날짜의 월 이름을 반환합니다.

mysql> MONTHNAME("1998-02-05")
    ->
  1. 코드 복사
QUARTER(날짜) 1부터 4까지의 범위에서 날짜에 대한 연도의 분기를 반환합니다.

mysql> QUARTER('98-04-01')
    -> 2
  1. 코드 복사
WEEK(날짜) ​ WEEK(날짜,첫 번째) 일요일이 주의 첫 번째 날인 경우 0~52 범위에서 날짜의 주 번호를 반환하는 단일 인수가 있습니다. WEEK() 형식의 2개 인수는 다음을 허용합니다. 주가 일요일 또는 월요일에 시작하는지 지정합니다. 두 번째 매개변수가 0이면 주가 일요일로 시작되고, 두 번째 매개변수가 1이면 주가 시작됩니다. 월요일부터 시작합니다.

mysql> WEEK('1998-02-20')
    -> 7
  1. mysql> 02-20',0);
  2. -> 7
  3. mysql> WEEK('1998-02-20',1)
  4. 코드 복사
YEAR(날짜) 1000에서 9999 사이의 날짜 연도를 반환합니다.

mysql> 연도('98-02-03') 선택
-> 1998
HOUR(시간) 0~23 범위의 시간을 반환합니다.

mysql> select HOUR('10:05:03')
->
  1. 코드 복사
MINUTE(시간) 0~59 범위의 분을 반환합니다.

mysql> MINUTE('98-02-03 10:05:03')
->
    코드 복사
  1. SECOND(시간) 0~59 범위의 시간(초)을 반환합니다.

mysql> SECOND('10:05:03')

-> 3
    코드 복사
  1. PERIOD_ADD(P,N) 단계 P에 N개월을 추가합니다(YYMM 또는 YYYYMM 형식). YYYYMM 형식으로 값을 반환합니다. 위상 매개변수 P는 날짜 값이 아닙니다.

mysql> PERIOD_ADD(9801,2) 선택

-> 199803
    코드 복사
  1. PERIOD_DIFF(P1,P2) 기간 P1과 P2 사이의 개월 수를 반환합니다. YYMM 또는 YYYYMM 형식이어야 합니다. 기간 매개변수 P1 및 P2는 날짜 값이 아닙니다.

mysql> PERIOD_DIFF(9802,199703)

->11
    코드 복사
  1. DATE_ADD(날짜,INTERVAL 표현식 유형) ​ DATE_SUB(날짜,INTERVAL 표현식 유형) ​ ADDDATE(날짜,INTERVAL 표현식 유형) ​ SUBDATE(날짜,INTERVAL 표현식 유형) 이 함수는 날짜 작업을 수행합니다. MySQL 3.22부터는 새로운 기능입니다. ADDDATE() 및 SUBDATE()는 DATE_ADD() 및 DATE_SUB()의 동의어입니다. MySQL 3.23에서는 DATE_ADD() 및 DATE_SUB() 대신 - 및 -를 사용할 수 있습니다. (예 참조) date는 시작 날짜를 지정하는 날짜입니다. DATETIME 또는 DATE 값, expr은 시작 날짜에 더하거나 빼는 간격 값을 지정하는 표현식이며, expr은 문자열일 수 있습니다. "-" 시작은 음의 간격을 나타냅니다. type은 표현식을 해석하는 방법을 지정하는 키워드입니다. 날짜로부터의 EXTRACT(FROM 날짜 유형) 함수 "유형" 간격을 반환합니다. 다음 표는 유형 및 expr 매개변수가 어떻게 관련되어 있는지 보여줍니다. 유형 값은 예상되는 expr 형식을 의미합니다. SECOND초 SECOND초 MINUTE분 MINUTES HOUR시간 HOURS시간 요일 월 월 월 년 년 MINUTE_SECOND분 및 초 "MINUTES:SECONDS" HOUR_MINUTE시간 및 분 "HOURS:MINUTES" DAY_HOUR 일 및 시간 "DAYS HOURS" YEAR_MONTH 연도 및 월 "YEARS-MONTHS" HOUR_SECOND시, 분, "HOURS:MINUTES:SECONDS" DAY_MINUTE일, 시, 분 "DAYS HOURS:MINUTES" DAY_SECOND 일, 시, 분, 초 "DAYS HOURS:MINUTES:SECONDS"

    MySQL은 expr 형식의 모든 구두점 구분 기호를 허용합니다. 권장 구분 기호가 표시됨을 나타냅니다. 날짜 인수가 DATE 값이고 계산이 다음과 같은 경우 YEAR, MONTH 및 DAY 구성 요소를 포함하며(즉, 시간 구성 요소 없음) 결과는 DATE 값입니다. 그렇지 않으면 결과는 DATETIME 값입니다.

    1. mysql> SELECT "1997-12-31 23:59:59" 간격 1초
    2. -> 00:00
    3. mysql> 1일 간격 선택
    4. -> 1998-01-01
    5. mysql> SELECT "1998-01-01" - 간격 1초; 🎜>-> 1997-12-31 23:59:59
    6. mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    7. 간격 1초); 1998-01-01 00:00:00
    8. mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    9. 간격 1일)-> 1998-01-01 23:59:59
    10. mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    11. INTERVAL "1:1" MINUTE_SECOND); :01:00
    12. mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
    13. INTERVAL "1 1:1:1" DAY_SECOND); 30 22:58:59
    14. mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
    15. INTERVAL "-1 10" DAY_HOUR); 14:00:00
    16. mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY)
    17. -> 1997-12-02
    18. mysql> SELECT EXTRACT(YEAR FROM "1999- 07-02");
    19. -> 1999
    20. mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
    21. -> 199907
    22. mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
    23. -> 20102
    24. 코드 복사
    25. 너무 짧게 지정하는 경우 간격 값(type 키워드에서 예상하는 간격 부분 제외), MySQL은 간격 값의 가장 왼쪽 부분을 생략한다고 가정합니다. 예를 들어, DAY_SECOND 유형을 지정하는 경우 expr 값에는 일, 시, 분 및 초 구성요소가 있어야 합니다. "1:10"과 같은 값을 지정하면 MySQL은 일과 시간 부분이 누락되고 값이 분과 초를 나타내는 것으로 가정합니다. 즉, "1:10" DAY_SECOND는 "1:10" MINUTE_SECOND와 동일합니다. 이는 MySQL이 TIME 값을 해석하여 하루 중 시간이 아닌 경과 시간을 나타내는 방식과 모호합니다. 실제로 잘못된 날짜를 사용하는 경우, 결과는 NULL입니다. MONTH, YEAR_MONTH 또는 YEAR를 증가시키고 결과 날짜가 새 달의 최대 일 수보다 큰 경우 해당 일은 새 달의 최대 일 수로 조정됩니다.

    mysql> DATE_ADD('1998-01-30', 간격 1개월)

    ->
    코드 복사
    1. 이전 예에서 INTERVAL이라는 단어와 type 키워드는 대소문자를 구분하지 않는다는 점에 유의하세요. TO_DAYS(날짜) 날짜가 주어지면 일수(0년부터)를 반환합니다.
    mysql> select TO_DAYS(950501)

    -> 728779

    mysql> 729669
    FROM_DAYS(N) 일수 N이 주어지면 DATE 값을 반환합니다.
    1. mysql> select FROM_DAYS(729669)
    -> '1997-10-07'
    코드 복사

    TO_DAYS()는 그레고리력(1582)이 출현하기 이전의 값과 함께 사용하도록 의도되지 않았습니다.

    DATE_FORMAT(날짜,형식) 형식 문자열에 따라 날짜 값의 형식을 지정합니다. 형식 문자열에는 다음 수정자를 사용할 수 있습니다. %M 월 이름(1월......12월) %W 요일 이름 (일요일......토요일) %D 영어 접두어가 붙은 날짜(1st, 2nd, 3rd 등) %Y년, 숫자, 4자리 %y 연도, 숫자, 2자리 %a 약식 요일 이름(Sun......Sat) %d 월의 일수, 숫자(00…31) %e 해당 월의 일수, 숫자(0…31) %m 월, 숫자(01…12) %c 월, 숫자(1…12) %b 약식 월 이름(Jan......Dec) %j 1년의 일수 (001……366) %H 시간(00…23) %k시간(0~23) %h시간(01…12) %I 시간(01…12) %l시간(1...12) %i분, 숫자(00…59) %r 시간, 12시간(hh:mm:ss [AP]M) %T 시간, 24시간(hh:mm:ss) %S초(00…59) %s초(00…59) %p 오전 또는 오후 %w 일주일의 일수(0=일요일...6=토요일) %U 요일(0...52), 여기서 일요일은 주의 첫 번째 날입니다. %u 요일(0...52), 여기서 월요일은 주의 첫 번째 날입니다. %% 리터럴 "%"입니다.

    다른 모든 문자는 해석 없이 결과에 복사됩니다.

    1. mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); > '1997년 10월 토요일'
    2. mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'); :00'
    3. mysql> DATE_FORMAT('1997-10-04 22:23:00',
    4. '%D %y %a %d %m %b %j')
    5. -> ; '277년 10월 4일 4일'
    6. mysql> select DATE_FORMAT('1997-10-04 22:23:00',
    7. '%H %k %I %r %T %S %w' );
    8. -> '22 22 10 10:23:00 PM 22:23:00 00 6'
    코드 복사
    MySQL3 .23에서는 형식 수정자 문자 앞에 %가 필요합니다. 이전 버전의 MySQL에서는 %가 선택 사항이었습니다.

    TIME_FORMAT(시간,형식) 이는 위의 DATE_FORMAT() 함수처럼 사용되지만 형식 문자열에는 시, 분, 초를 처리하는 형식 수정자만 포함될 수 있습니다. 다른 수정자는 NULL 값 또는 0을 생성합니다. 날짜() ​ CURRENT_DATE 함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 오늘 날짜 값을 'YYYY-MM-DD' 또는 YYYYMMDD 형식으로 반환합니다.

      mysql> CURDATE() 선택
    1. -> '1997-12-15'
    2. mysql> 🎜>-> 19971215
    3. 코드 복사
    CURTIME() ​ CURRENT_TIME 함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 'HH:MM:SS' 또는 HHMMSS 형식으로 현재 시간 값을 반환합니다.

    mysql> 선택 CURTIME()
      -> '23:50:26'
    1. mysql> 🎜>-> 235026
    2. 코드 복사
    NOW() ​ 시스템 날짜() ​ CURRENT_TIMESTAMP 함수가 문자열 또는 숫자에 대해 작동하는지 여부에 따라 'YYYY-MM-DD HH:MM:SS' 또는 YYYYMMDDHHMMSS 형식으로 현재 날짜 및 시간을 반환합니다. 컨텍스트가 사용됩니다.

    mysql> 지금 선택()
    -> '1997-12-15 23:50:26'
      mysql> () 0;-> 19971215235026
    1. 코드 복사
    UNIX_TIMESTAMP() ​ UNIX_TIMESTAMP(날짜) 인수 없이 호출하면 Unix 타임스탬프('1970-01-01 00:00:00' GMT 이후의 초 수)를 반환합니다. UNIX_TIMESTAMP()가 '1970-01-01 00:00:00' GMT 이후의 초 수를 반환하는 날짜 매개변수가 호출됩니다. 날짜는 DATE 문자열 또는 DATETIME일 수 있습니다. 문자열, TIMESTAMP 또는 YYMMDD 또는 YYYYMMDD 형식의 현지 시간입니다. mysql> UNIX_TIMESTAMP()를 선택합니다.

    -> 882226357
    mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00')
    -> 875996580
    1. 코드 복사
    UNIX_TIMESTAMP가 TIMESTAMP 열과 함께 사용되는 경우 함수는 암시적 "string-to-unix-timestamp" 없이 값을 직접 허용합니다. 변신 .
    FROM_UNIXTIME(unix_timestamp) 함수가 문자열에 있는지 여부에 따라 unix_timestamp 매개변수가 나타내는 값을 'YYYY-MM-DD HH:MM:SS' 또는 YYYYMMDDHHMMSS 형식으로 반환합니다. 또는 수치적 맥락에서 사용됩니다.

    mysql> select FROM_UNIXTIME(875996580)
    -> '1997-10-04 22:23:00'
    mysql> FROM_UNIXTIME(875996580) 0;
      -> 19971004222300
    1. 코드 복사
    2. FROM_UNIXTIME(unix_timestamp,형식) 형식 문자열에 따라 형식이 지정된 Unix 타임스탬프를 나타내는 문자열을 반환합니다. 형식에는 DATE_FORMAT() 함수로 나열된 항목이 포함될 수 있습니다. 동일한 수정자.

      1. mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
      2. '%Y %D %M %h:%i:%s %x');
      3. -> '1997년 12월 23일 03:43:30 x'
      코드 복사

      SEC_TO_TIME(초) 시간, 분, 초로 변환된 초 매개변수를 반환합니다. 값은 함수가 문자열인지 숫자인지에 따라 'HH:MM:SS' 또는 HHMMSS 형식으로 지정됩니다. 맥락에서 사용됩니다.

      1. mysql> SEC_TO_TIME(2378) 선택
      2. -> '00:39:38'
      3. mysql> ;
      4. -> 3938
      코드 복사

      TIME_TO_SEC(시간) 초로 변환된 시간 매개변수를 반환합니다.

      1. mysql> TIME_TO_SEC('22:23:00')
      2. -> 80580
      3. mysql> 39:38');
      4. -> 2378
      코드 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿