PHP的日期和时间处理函数
1. 将日期和时间转变为时间戳
1.1 time()
原型:time(void)
作用:返回当前时间的 UNIX时间戳。
参数:void,可选(即无参数)
1.2 mktime()
原型:int mktime([int hour[,int minute[,int second[,int month[,int day[,int year]]]]]])
作用:将给定日期和时间转变成UNIX时间戳
参数:该函数中所有参数都是可选的,如果参数为空,默认将当前时间转变成UNIX时间戳。这样,和直接调用time()函数获取当前的UNIX时间戳功能相同。参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果只想转变日期,对具体的时间不在乎,可以将前三个转变时间的参数都设置为0。mktime()函数对于日期运算和验证非常有用,它可以自动校正越界的输入。
代码示例:
echo date("Y-m-d",mktime(0,0,0,12,36,2008))."\n"; //日期超过31天,计算后输出:2009-01-05
echo date("Y-m-d",mktime(0,0,0,14,1,2010))."\n"; //月份超过12月,计算后输出:2011-02-01
1.3 strtotime()
原型:int strtotime(string time[,int now])
作用:用英语的自然语言创建某个时刻的时间戳,接受一个包含美国英语日期格式的字符串并尝试将其解析为UNIX时间戳(自January 1 1970 00:00:00 GMT起的秒数),其值相对于now参数给出的时间,如果没有提供此参数则用系统当前时间。该函数执行成功后则返回时间戳,否则返回FALSE。
代码示例:
echo date("Y-m-d",strtotime("now")); //输出:2015-07-24
echo date("Y-m-d",strtotime("24 july 2015")); //输出:2015-07-24
echo date("Y-m-d",strtotime("+1 day")); //输出:2015-07-25
echo date("Y-m-d",strtotime("last monday")); //输出:2015-07-20
2 在PHP中获取日期和时间
2.1 getdate()
原型:getdate(timestamp)
作用:取得日期/时间信息。
参数:timestamp:可选的UNIX时间戳,如果没有给出时间戳,则认为是当前本地时间。
返回值:返回一个由时间戳组成的关联数组,总共返回11个数组元素,如下所示:
键名 描述 返回值例子
hours 小时的数值表示 0~23
mday 月份中日的数值表示 1~31
minutes 分钟的数值表示 0~59
mon 月份的数值表示 1~12
month 月份的完整文本表示 January~December
seconds 秒的数值表示 0~59
wday 一周中日的数值表示 0~6(0表示星期日)
weekday 一周中日的完整文本表示 Sunday~Saturday
yday 一年中日的数值偏移 0~365
year 年份的4位表示 例如:1999或2009
0 自从UNIX纪元开始至今的秒数,和time()的返回值以及用于date()的值类似 系统相关,典型值为从-2147483648~2147483647
代码示例:如果将“2009年10月1日,07:30:50 EDT”转变为UNIX时间戳1254382250表示,并将其传给getdate()函数,查看各元素如下:
array (
'seconds'
'minutes'
'hours'
'mday'
'wday'
'mon'
'year'
'yday'
'weekday' => string 'Thursday' (length=8)
'month' => string 'October' (length=7)
0
)
2.2 date()
原型:string date(string format[,int timestamp])
作用:用于对日期或时间进行格式化。
参数:该函数有两个参数,第一个参数是必需的,规定时间戳的转换格式。第二个参数是可选的,需要提供一个UNIX时间戳,如果没有指定这个UNIX时间戳,默认值为time()将返回当前的日期和时间。
返回:返回一个格式化后表示适当日期的字符串。
代码示例:
echo date("Y年m月d日 H:i:s"); //格式化一个本地时间和日期
echo date("Y-m-d H:i:s"); //输出:2015-07-24 11:48:13
echo date("Y-m-d",1437709743); //输出:2015-07-24
3.修改PHP的默认时区
PHP默认的时区设置是UTC时间,而北京正好位于时区的东八区,领先UTC8个小时。所以在使用PHP中像time()等获取当前时间的函数时,得到的时间总是不对,表现是和北京时间相差8个小时。如果希望正确地显示北京时间,就需要修改默认的时区设置。可以通过以下两种方式完成。
(1)如果使用的是独立的服务器,有权限修改配置文件,设置时区就可以通过修改php.ini中的date.timezone属性完成。我们可以将这个属性的值设置为"Asia/Shang"、"Asia/Chongqing"、"Etc/GMT-8"或PRC等中的一个,再在PHP脚本中获取当前的时间就是北京时间。修改PHP的配置文件如下所示:
date.timezone = Etc/GMT-8
(2)如果使用的是共享服务器,没有权限修改配置文件php.ini,并且PHP版本又在5.1.0以上,也可以在输出时间之前调用date_default_timezone_set()函数设置时区。该函数需要提供一个时区标识符作为参数,和配置文件中date.timezone属性的值相同。该函数的使用如下所示:
date_default_timezone_set("PRC");
echo date("Y-m-d H:i:s",time());
4.使用微妙计算PHP脚本执行时间
microtime()
原型:mixed microtime([bool get_as_float])
作用:返回当前UNIX时间戳和微妙数
参数:该函数有一个可选的布尔型参数,如果在调用时不提供这个参数,本函数以"msec sec"的格式返回一个字符串。其中sec是自UNIX纪元起到现在的毫秒数,而msec是微妙部分,字符串的两部分都是以秒为单位返回的。如果给出了get_as_float参数并且其值等价于TRUE,microtime()函数将返回一个浮点数。在小数点前面还是以时间戳的格式表示,而小数点后面则表示微妙的值。但要注意参数get_as_float是在PHP5.0版本中添加的,所以在PHP5.0以前的版本中,不能直接使用该参数请求一个浮点数。
代码示例:
class Timer{
private $startTime = 0;
private $stopTime = 0;
function start()
{
$this->startTime = microtime(true);
}
function stop()
{
$this->stopTime = microtime(true);
}
function spent()
{
return round($this->stopTime - $this->startTime,4);
}
}
$timer = new Timer();
$timer->start();
usleep(1000);
$timer->stop();
echo "执行脚本用时<b>".$timer->spent()."</b>"; //输出:执行脚本用时0.0008
PHP的日期和时间处理函数的更多相关文章
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- 按年、季度、月分组&&计算日期和时间的函数
Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FO ...
- MySQL【日期和时间处理函数】的使用方法
名称 调用示例 示例结果 描述 NOW NOW() 2018-09-19 09:24:10 返回当前日期和时间 CURDATE CURDATE() 2018-09-19 返回当前日期 CURTIME ...
- Sql Server系列:日期和时间函数
1. 获取系统当前日期函数GETDATE() GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime. SELECT GETDATE() 2. 返回UTC日期的函数G ...
- Sql Server函数全解(四)日期和时间函数
日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...
- Sql Server函数全解<四>日期和时间函数
原文:Sql Server函数全解<四>日期和时间函数 日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...
- 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?
参考: https://www.jb51.net/article/23966.htm https://yq.aliyun.com/articles/260389 mysql中的 日期格式是: HHHH ...
- 日期时间函数 mysql 和sqlserver 中对于常用函数的日期和时间函数的区别
1. sqlserver中获取时间用getdate(),默认返回格式是2019-01-21 13:58:33.053,具体的年月日,时分秒毫米,年月日之间用短线连接,时分秒之间用冒号连接,秒和毫米之间 ...
- Mysql日期转换函数、时间转换函数
Mysql日期转换函数.时间转换函数 一.MySQL 获得当前日期时间 函数 1,获得当前日期+时间(date + time)函数:now(): select now(); 结果: :: 2,获得当前 ...
随机推荐
- Android开发之MVP模式的使用
前几天发现,在Android项目代码里有一个Activity类行数居然有1000多行,而600行左右都是逻辑控制,真正和页面控件处理相关的代码不多,虽然可以用#region <>...#e ...
- mac版本cornerstone的无限期破解方法【转】
CornerStone是个人非常喜欢的mac上的一款SVN客户端工具,官方提供了14天的免费试用(trail)版本.我们可以在此基础上提供无限期试用版本. 方法一:如果你从来没有安装过这个trail版 ...
- 转:大神提出来的java服务器方面面试问题(当作自己的学习目标平时得多注意)
因为一些个人原因,陆陆续续参加了一些校招补招.社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S.下面罗列一些我复习 ...
- Dark Mobile Bank之移动银行应用仿冒攻击威胁分析报告
一.背景 据“第十五次全国信息网络安全状况暨计算机和移动终端病毒疫情调查”调查结果显示,2015年移动终端的病毒感染比例为50.46%,相对于2014年增长了18.96%,移动终端病毒感染率涨幅较大, ...
- 爬虫requests模块 1
让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...
- jsf初学数据表(DataTable)的绑定
来看看简单的datatable例子: faces: <h:form> <h:dataTable value="#{tableData.names}" var=&q ...
- 基于Solr的空间搜索
如果需要对带经纬度的数据进行检索,比如查找当前所在位置附近1000米的酒店,一种简单的方法就是:获取数据库中的所有酒店数据,按经纬度计算距离,返回距离小于1000米的数据. 这种方式在数据量小的时候比 ...
- swift 命令
http://blog.chinaunix.net/uid-15063109-id-5144658.html http://www.cnblogs.com/fczjuever/p/3224022.ht ...
- windowsservice
1.创建 windows服务 项目 文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服务 ...
- Daily Scrum Meeting ——SeventhDay(Beta)12.15
一.Daily Scrum Meeting照片 二.Burndown Chart 想做的太多,冲刺仍在继续 三.项目进展(check-in) 1.完成了登录注册剩下的所有界面 2.更改通知详情和活动详 ...