>  기사  >  백엔드 개발  >  PHP의 다양한 날짜 및 시간 작업

PHP의 다양한 날짜 및 시간 작업

步履不停
步履不停원래의
2019-06-06 11:47:584273검색

PHP의 다양한 날짜 및 시간 작업

下载 (1).jpg

날짜 및 시간 형식

date : 날짜 및 시간 형식

  • Scenario

현재 날짜 및 시간을 변환하거나 특정 날짜와 시간 형식 출력은 정보를 인간적으로 표시하는 데 자주 사용되는 특정 형식의 문자열입니다.

  • 설명

타임스탬프가 지정되지 않은 경우 생성된 날짜 및 시간 문자열을 반환합니다. 기본적으로 로컬 시간이 사용됩니다. 현재 시간.

  • Format
Description반환 값 예Y4 숫자로 표현된 전체 연도 2019y
Y 4 位数字完整表示的年份 2019
y 2 位数字表示的年份 19
M 三个字母缩写表示的月份 Jan 到 Dec
m 数字表示的月份,有前导零 01 到 12
D 星期中的第几天,文本表示,3个字母 Mon 到 Sun
d 月份中的第几天,有前导零的 2 位数字 01 到 31
H 小时,24 小时格式,有前导零 00 到 23
h 小时,12 小时格式,有前导零 01 到 12
I 是否为夏令时 如果是夏令时为1 ,否则为 0
i 有前导零的分钟数 00 到 59
S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th ,可以和 j 一起用
s 秒数,有前导零 00 到 59
2 숫자로 표현된 연도 🎜 🎜19🎜🎜🎜🎜<code>M🎜🎜3자리 약어로 표현되는 달🎜🎜Jan to Dec🎜🎜🎜🎜m🎜🎜 앞에 0이 붙은 숫자로 표시되는 월 🎜🎜01 ~ 12🎜🎜🎜🎜D🎜🎜요일, 텍스트 표현, 3 code> 문자 🎜🎜<code>Mon to Sun🎜🎜🎜🎜d🎜🎜월의 날짜, 2 선행 0의 자릿수 숫자 🎜🎜<code>01 ~ 31🎜🎜🎜🎜H🎜🎜hour, 24 시간 형식, 선행 0 포함 🎜🎜00 ~ 23🎜🎜🎜🎜h🎜🎜hour, 12 시간 형식, 앞에 0이 붙음 🎜🎜01 ~ 12 🎜🎜🎜 🎜🎜🎜서머타임인지🎜🎜서머타임이면 1, 아니면 0🎜🎜🎜🎜i🎜🎜분 앞에 0이 붙음🎜🎜<code>00 ~ 59🎜🎜🎜🎜S🎜🎜The 월 일수 뒤의 영문 접미사 2자 🎜🎜st,nd,rd 또는 th는 j 🎜🎜🎜🎜s🎜🎜초, 앞에 0이 붙음🎜🎜<code>00 ~ 59🎜🎜🎜🎜
  • 공통 형식

// 形如 2019-05-31 12:00:00echo date("Y-m-d H:i:s");
// 形如 2019/05/31 12:00:00echo date("Y/m/d H:i:s");
// 形如 2019年05月31日 12时00分00秒echo date("Y年m月d日 H时i分s秒");
<?php
// 设置当前时区为上海时区
date_default_timezone_set("Asia/Shanghai");

// 获取当前时区 : Asia/Shanghai
echo "当前时区 : ".date_default_timezone_get()."<br/>";

// `Y年m月d日 H时i分s秒` 格式化当前时间 : 2019年05月30日 22时32分46秒
echo "当前时间 : ".date("Y年m月d日 H时i分s秒")."<br/>";

// `Y-m-d H:i:s` 格式化当前时间 : 2019-05-30 22:32:46
echo "当前时间 : ".date("Y-m-d H:i:s")."<br/>";

// `w` 星期中的第几天,数字表示: 0(表示星期天)到 6(表示星期六)
switch (date("w")) {    
    case &#39;0&#39;:
        $dayStr = "日";        
        break;    
    case &#39;1&#39;:
    $dayStr = "一";        
    break;    
  case &#39;2&#39;:
    $dayStr = "二";        
    break;    
  case &#39;3&#39;:
    $dayStr = "三";      
    break;   
  case &#39;4&#39;:
    $dayStr = "四";        
    break;    
  case &#39;5&#39;:
    $dayStr = "五";        
    break;    
  case &#39;6&#39;:
    $dayStr = "六";        
    break;    
  default:
    $dayStr = "未知";        
    break;
} 
// 2019年05月30日 星期四
echo "当前时间 : ".date("Y年m月d日")." 星期".$dayStr."<br/>";
echo "<hr/>";

// `z` 年份中的第几天 : 今天是全年的第149天
echo "今天是全年的第".date("z")."天<br/>";

// `W` ISO-8601 格式年份中的第几周,每周从星期一开始 : 本周是全年的第22周
echo "本周是全年的第".date("W")."周<br/>";

// `t` 指定的月份有几天 : 本月共有31天
echo "本月共有".date("t")."天<br/>";
?>

날짜 변환 타임스탬프

time : 현재 Unix를 반환합니다. 타임스탬프

  • Scene

날짜와 시간을 변환하는 데 자주 사용되는 특정 날짜와 시간 또는 현재 날짜와 시간의 타임스탬프를 가져옵니다.

  • 설명

Unix 시대(GMT 1970년 1월 1일) 이후의 날짜를 반환합니다. ) seconds.

  • Example

<?php
// 设置当前时区为上海时区
date_default_timezone_set("Asia/Shanghai");

// 获取当前时区
echo "当前时区 : ".date_default_timezone_get()."<br/>";

// 一周前的日期时间: 7 days; 24 hours; 60 mins; 60 
secs$preWeek = time() - (7 * 24 * 60 * 60);
echo "现在是".date("Y-m-d H:i:s").",上周是".date("Y-m-d H:i:s",$preWeek)."<br/>";

// 一周后的日期时间: 7 days; 24 hours; 60 mins; 60 secs
$nextWeek = time() + (7 * 24 * 60 * 60);
echo "现在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)."<br/>";
?>

microtime: 현재 Unix 타임스탬프와 마이크로초를 반환합니다

  • Scenario

현재 날짜와 시간의 타임스탬프 또는 프로그램 실행 프로세스의 포인트 분석에 자주 사용되는 특정 날짜 및 시간이며 날짜와 시간 간의 변환에도 사용할 수 있습니다.

  • Example

<?php

// 设置当前时区为上海时区
date_default_timezone_set("Asia/Shanghai");

// 获取当前时区
cho "当前时区 : ".date_default_timezone_get()."<br/>";

// 当前日期时间戳
echo "当前日期时间戳: ".time()." <--> ".microtime()." <--> ".microtime(TRUE)."<br/>";

?>

    mktime: 날짜의 Unix 타임스탬프 가져오기

  • Scenario

주어진 날짜의 타임스탬프를 가져와서 "시, 분, 초, 월, 일, 연도" 형식에 따라 순서대로 구문 분석하고 타임스탬프를 반환합니다.
  • Explanation

Return 주어진 매개변수에 따른 유닉스 Timestamp.

  • Format

Description

    매개변수 예시
  • H
시간 code> 시간 개수 00 ~ 23i 분 수 00 ~ 59 초 수
H hour 小时数 00 到 23
i minute 分钟数 00 到 59
s second 秒数 00 到 59
n month 月份数 01 到 12
j day 天数 01 到 31
Y year 年份数,可以是两位或四位数字 0-69 对应于 2000-2069 ,70-100 对应于 1970-2000
00 ~ 59🎜🎜🎜🎜n 🎜🎜월 개월 수 🎜🎜01 ~ 12🎜🎜🎜🎜j🎜🎜 일 수 🎜🎜01 ~ 31🎜🎜🎜🎜Y🎜🎜연도 연도 숫자(2자리 또는 4자리 가능)🎜 🎜0-692000-2069에 해당하고, 70-1001970-2000🎜🎜🎜🎜에 해당합니다.

格式: 时分秒 月日年,支持从右往左依次省略,被省略的值取当前时间的对应值.

  • 示例

<?php
// 设置当前时区为上海时区
date_default_timezone_set("Asia/Shanghai");

// 获取当前时区
echo "当前时区 : ".date_default_timezone_get()."<br/>"; 

// 指定日期时间戳: 时分秒 月日年 : 1559275200 <--> 2019-05-31 12:00:00
echo "2019年05月31日 12:00:00 的时间戳: ".mktime(12,0,0,5,31,2019)." <--> ".date("Y-m-d H:i:s", mktime(12,0,0,5,31,2019))."<br/>"; 

// 距离国庆节还有多少天,单位秒 : 今天是2019-05-31,距离国庆节还剩122天
$nationalDay = mktime(0,0,0,10,1,2019);
$currentDay = time();
$remainingDay = floor(abs($nationalDay - $currentDay)/(24*3600));
echo "今天是".date("Y-m-d").",距离国庆节还剩".$remainingDay."天<br/>";
?>

strtotime : 将任何字符串的日期时间描述解析为 Unix 时间戳

  • 场景

将英文日期解析成时间戳,比直接解析日期方便,采用自然语义而不是编程语言进行转换日期.

  • 说明

本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数,其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间.

  • 常用格式

// 2019-06-02
echo date("Y-m-d", strtotime("2019-05-31 +2 days"));

// 2019-07-01
echo date("Y-m-d", strtotime("2019-05-31 +1 month"));

// 2019-06-09
echo date("Y-m-d", strtotime("2019-05-31 +1 week 2 days 4 hours 2 seconds"));
  • 示例

<?php
// 设置当前时区为上海时区
date_default_timezone_set("Asia/Shanghai");

// 获取当前时区
echo "当前时区 : ".date_default_timezone_get()."<br/>";

// 当前日期时间戳
echo "当前日期时间戳: ".time()." <--> ".strtotime("now")." <--> ".date("Y-m-d H:i:s", strtotime("now"))."<br/>";

// 一周后的日期时间: 7 days; 24 hours; 60 mins; 60 secs
$nextWeek = time() + (7 * 24 * 60 * 60);
echo "现在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)." <--> ".date("Y-m-d H:i:s",strtotime("+1 week"))."<br/>";

echo "现在是".date("Y-m-d H:i:s").",1周2天4小时2秒是".date("Y-m-d H:i:s",strtotime("+1 week 2 days 4 hours 2 seconds"))."<br/>";

echo "现在是".date("Y-m-d H:i:s").",下周三是".date("Y-m-d H:i:s",strtotime("next Thursday"))."<br/>";
?>


日期时间函总结

日期时间函数库是 php 内置的函数库,默认情况下已启用,值得注意的是,日期时间和时区有关,建议首先设置下时区.

纵观日期时间的操作方法,总的来说,可以大致分为两类,一类是给计算机用的,另一类是给人看的.

  • 给人看的

date_default_timezone_set("Asia/Shanghai") : 设置当前脚本使用的时区date("Y-m-d H:i:s") : 格式化日期时间date("Y-m-d", strtotime("2019-05-31 +2 days")) : 格式化英文描述的日期时间

  • 给计算机用的

time() : 当前时间的秒数microtime() : 当前时间的秒数和微秒数strtotime() : 将字符串形式的日期时间转换成时间戳

最后,文档那么齐全,不懂就去多看看,忘记有啥方法全靠 ide 智能提示就好,多用用就会慢慢熟练。

推荐教程:PHP制作阴阳历转换的日历插件

위 내용은 PHP의 다양한 날짜 및 시간 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.