찾다
php教程php手册php常用日期函数
php常用日期函数Jun 06, 2016 pm 08:02 PM
php내장기능일반적으로 사용되는개발하다공급날짜

HP提供了大量的内置函数,使开发人员在时间的处理上游刃有余,大大提高了工作效率。我们今天就为学员介绍一些常见的PHP日期和时间函数以及日期和时间的处理。 9.1 常用的日期和时间处理函数 表9-1:常用的日期和时间处理函数 函 数 说 明 checkdate 验证时间

HP提供了大量的内置函数,使开发人员在时间的处理上游刃有余,大大提高了工作效率。我们今天就为学员介绍一些常见的PHP日期和时间函数以及日期和时间的处理。

9.1 常用的日期和时间处理函数

表9-1:常用的日期和时间处理函数

函 数

说 明

checkdate

验证时间函数,判断时间是否有效,有效返回true,否则返回false

date_default_timezone_get

取得脚本日期时间函数所使用的默认时区

date_default_timezone_set

设定日期时间函数的默认时区

date

格式化一个本地时间/日期

getdate

获取日期/时间信息

gettimeofday

获取当前时间

localtime

获取本地时间

microtime

返回当前时间戳和微秒数

mktime

取得一个UNIX时间戳

strtotime

将任何英文文本的日期时间描述解析为UNIX时间戳

time

返回当前的UNIX时间戳

9.2 处理日期和时间

9.2.1获取当前日期和时间:date()函数,用法:

date(string format,int timestamp)

该函数将返回参数timestamp按照指定格式而产生的字符串。其中参数timestamp是可选的,如果省略,则使用当前时间。format参数可以使开发人员按其指定的格式输出时间日期。

date_default_timezone_set(PRC); //设置北京时间.

1. 年-月-日

echo date('Y-m-j'); //例:2007-02-6

echo date('y-n-j'); //例:07-2-6

大写Y表示年四位数字,而小写y表示年的两位数字;

小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

echo date('Y-M-j'); //例:2007-Feb-6

echo date('Y-m-d'); //例:2007-02-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);

没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

echo date('Y-M-j'); //例:2007-Feb-6

echo date('Y-F-jS'); //例:2007-February-6

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)

大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。

小结:

表示年可以用大写的Y和小写y;

表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);

表示日可以用小写d和小写j,大写S表示日期的后缀。

2,时:分:秒

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

echo date('g:i:s a'); //例:5:56:57 am

echo date('h:i:s A'); //例:05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。

当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

echo date('G:i:s');14:02:26

大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数

小结:

字母g表示小时不带前导,字母h表示小时带前导;

小写g、h表示12小时制,大写G、H表示24小时制。

3,闰年、星期、天

大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;

小写l表示当天是星期几的英文全写(Tuesday);

而使用大写D表示星期几的3个字符缩写(Tue)。

echo date('w'); //例:今天星期:2

echo date('W'); //例:本周是全年中的第06 周

小写w表示星期几,数字形式表示

大写W表示一年中的星期数

echo date('t'); //例:本月是28 天

echo date('z'); //例:今天是今年的第36 天

小写t表示当前月份又多少天

小写z表示今天是本年中第几天

4,其他

echo date('T'); //例:UTC

大写T表示服务器的时间区域设置

echo date('I'); //例:0

大写I表示判断当前是否为夏令时,为真返回1,否则为0

echo date('U'); //例:1170769424

大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。

echo date('c'); //例:2007-02-06T14:24:43+00:00

小写c表示ISO8601日期,日期格式为YYYY-MM-DD,用字母T来间隔日期和时间,时间格式为HH:MM:SS,时区使用格林威治标准时间(GMT)的偏差来表示。

echo date('r'); //例:Tue, 06 Feb 2007 14:25:52 +0000

小写r表示RFC822日期。

9.2.2获取日期信息:getdate()函数

语法:

array getdate(int timestamp)

该函数返回数组形式的日期时间信息,如果没有时间戳,则以当前时间为准。该函数返回的关联数组元素的说明如表9-2所示:

表9-2:getdate()函数返回的关联数组元素说明

元 素

说 明

seconds

秒,返回值0~59

minutes

分钟,返回值为0~59

hours

小时,返回值为0~23

mday

月份中第几天,返回值为1~31

wday

星期中第几天,返回值为0(星期天)~6(星期六)

mon

月份数字,返回值为1~12

year

4位数字表示的完整年份,返回值加2000或2008

yday

一年中第几天,返回值0~365

weekday

星期几的完整文本表示,返回值为Sunday~Saturday

month

月份的完整文本表示,返回值为January~December

0

返回从UNIX纪元开始的秒数

例:

$arr = getdate();

echo $arr[year]."-".$arr[mon]."-".$arr[mday]."";

echo $arr[hours].":".$arr[minutes].":".$arr[seconds]."".$arr[weekday];

echo "

";

echo "Today is the $arr[yday]th of year";

?>

效果:

9.3 UNIX时间戳

时间戳是文件属性中的创建、修改、访问时间。数字时间戳服务(digital time stamp service, DTS)是web网站安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。

9.3.1 什么是时间戳

时间戳是一个经加密后形成后的凭证文档,它包括3个部分:

? 需要添加时间戳的文件用Hash编码加密形成摘要。

? DTS接受文件的日期和时间信息。

? 对接受的DTS文件加密。

数字时间是由认证单位DTS来添加的,以DTS接收到文件的时间为依据。

时间戳的作用原理是通过其他加密法将时间的数值转换为加密的数值,时间变化后加密的数值也随之变化。

时间戳的优点是:变化的加密数值来防止数值被窃取后非法重复利用,也就起到了加密的作用。时间戳主要依赖于时间,在约定的一段时间内产生唯一的一个数值。

9.3.2获取本地时间戳:mktime()函数

语法:

int mktime(int hour, int minute, int month, int day, int year, int [is_dst])

表9-3:mktime()函数的参数说明

参 数

说 明

hour

小时数

minute

分钟数

second

秒数(一分钟之内)

month

月份数

day

天数

year

年份数

is_dst

参数is_dst在夏令时可以被设置为1,如果不是则设置为0;如果不确定是否为夏令时则设置为-1(默认值)

注意:有效的时间戳典型范围是格林尼治时间1901年12月13日20:45:54~2038年1月19日03:13:07(此范围符合32位有符号整数的最小值和最大值)。在Windows系统中此范围限制为从1970年1月1日~2038年1月19日。

例:

echo "mktime函数返回的时间戳:".mktime()."

";

echo "当前的日期为:".date("Y-m-d",mktime())."

";

echo "当前的时间是:".date("H:i:s",mktime());

?>

效果:

9.4 系统时区设置

很多学员在学习过程中发现通过date()函数获取到的时间跟本地时间不一样,这是由于PHP5对date()函数进行了重写,因此,目前的日期时间函数比系统时间少8个小时。在PHP语言中默认设置的是标准的格林威治时间(即采用的是零时区)。

更改PHP语言中的时区设置主要有以下两种方法:

1. 修改php.ini文件中的设置,找到[date]下的;date.timezone = 选项,将该项修改为date.timezone=Asia/Hong_Kong,然后重新启动apache服务器。

2. 在应用程序中,使用时间日期函数之前添加如下函数:

date_default_timezone_set(“Asia/Hong_Kong”);

设置完成后,date()函数就可以正常使用了,不会再出现时差问题。

9.5 时间开发中遇到的日期和时间问题

9.5.1比较两个时间的大小

在实际开发中经常遇到判断两个时间的大小,PHP中的时间是不可以直接来进行比较的。所以,首先要将时间输出为时间戳的格式,然后再进行比较,这是常用到的方法。

有两个函数都可以实现这个功能,这里使用strtotime()函数,该函数可以将任何英文文本的日期时间描述解析为UNIX时间戳。该函数的语法为:

int strtotime(string time, int now)

该函数有两个参数。如果参数time的格式是绝对时间,则now参数不起作用;如果参数time的格式是相对时间,那么其对应的时间就是参数now来提供的,如果没有提供参数now,对应的时间就是当前时间。如果解析失败,则返回-1.

例:

$time1 = date("Y-m-d H:i:s"); //获取当前时间

$time2 = "2008-2-3 16:30:00"; //给变量$time2设置一个时间

echo "变量/$time1的时间为:".$time1."
"; //输出两个时间变量

echo "变量/$time2的时间为:".$time2."
";

if (strtotime($time1)-strtotime($time2)

echo "/$time1早于/$time2"; //如果time1-time2

}else{

echo "/$time2早于/$time1"; //否则,说明time2的时间在前

}

?>

效果:

9.5.2 计算两个日期的差值

strtotime()函数除了可以比较两个日期的大小,还可以精确地知道两个日期的差值。下面通过一个倒计时的小程序来为学员们讲解如何用strtotime()函数来计算两个日期的差值。

$time1 = strtotime(date( "Y-m-d H:i:s"));

$time2 = strtotime("2008-2-3 17:10:00");

$time3 = strtotime("2008-8-8");

$sub1 = ceil(($time2 - $time1) / 3600); //60 * 60

$sub2 = ceil(($time3 - $time1) / 86400); //60 * 60 * 24

echo "离放假还有 $sub1 小时!!!" ;

echo "

";

echo "离北京奥运开幕还有$sub2 天!!!";

?>

效果:

9.5.3计算页面脚本的运行时间

在浏览网站时,经常会用到搜索引擎,在搜索信息时,细心的用户会发现,在搜索结果的最下方,一般都有“搜索时间为……秒”的字样。

这里使用到了microtime()函数,该函数返回当前UNIX时间戳和微秒数。返回格式为msec sec的字符串,其中sec是当前的UNIX时间戳,msec为微秒数。该函数的格式为:

string microtime(void)

下面我们来计算一下上例的运行时间,代码如下:

function run_time()

{

list($msec, $sec) = explode(" ", microtime());

return ((float)$msec + (float)$sec);

}

$start_time = run_time();

$time1 = strtotime(date( "Y-m-d H:i:s"));

$time2 = strtotime("2008-2-3 17:10:00");

$time3 = strtotime("2008-8-8");

$sub1 = ceil(($time2 - $time1) / 3600); //60 * 60

$sub2 = ceil(($time3 - $time1) / 86400); //60 * 60 * 24

echo "离放假还有 $sub1 小时!!!" ;

echo "

";

echo "离北京奥运开幕还有$sub2 天!!!";

$end_time = run_time();

?>

该示例的运行时间为 

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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전