博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP日期函数的高级应用技巧一
阅读量:6584 次
发布时间:2019-06-24

本文共 3413 字,大约阅读时间需要 11 分钟。

hot3.png

1 查看日期是否有效


1)函数说明

checkdate($month, $date, $year)


2)示例

var_dump(checkdate(2,31,2013)); //结果为:boolean false
echo checkdate(2,31,2013) ? "valide" : "invalid"; //结果为:invalid

2 取得日期/时间信息


1)函数说明

array getdate([ int $timestamp = time()])

返回一个根据timestamp得出的包含日期信息的关联数组array。如果没有给出时间戳则认为是当前本地时间。


2)返回的数组对应键名展示

1>“seconds” 秒的数字表示 0到59

2>“minutes” 分钟的数字表示 0到59

3>“hours” 小时的数字表示 0到23

4>“mday” 月份中第几天饿数字表示 1到31

5>“wday” 星期中第几天的数字表示 0(周日)到6(周六)

6>“mon" 月份的数字表示 1到12

7> "year" 4位数字表示的完整年份 比如2013

8> "yday" 一年中第几天的数字表示 0到365

9>"weekday" 星期几的完整文本表示 Sunday 到 Saturday

10> "month" 月份的完整文本表示 January到December

11> 0 自从Unix纪元开始至今的秒数,和time()的返回值以及用于date()的值类似。


3)名词解释

Unix纪元:格林威治时间1970年1月1日00:00:00


4)示例

date_default-timezone_set('Asia/Shanghai'); //设置时区
$today = getdate();
print_r($today);

5)示例结果

Array(

[seconds] =>58    [minutes] =>9    [hours] => 13    [mday] =>9    [wday] =>3    [mon]=>10    [year] => 2013    [yday] => 281    [weekday] => Wednesday    [month] => October    [0] => 1381295398

)

对应的日期为2013-10-9 13:9:58

3 将日期与时间值生成一个时间戳

1)函数说明

mktime($hour, $minute, $second, $month, $day, $year)

该函数根据给出的参数返回Unix时间戳(时间戳是一个长整数,包含了凑个Unix纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数)。如果参数非法,本函数返回FALSE(在PHP5.1之前返回-1),参数可以从右往左省略,任何省略的参数会被设置成本地日期和时间的当前值。


2)示例

echo "
2013-10-9是".date("l",mktime(0, 0, 0, 10, 9, 2013)); //2013-10-9是Wednesday
echo "
".date('c', mktime(0,0,0,10,9,2013)); //2013-10-09T00:00:00+08:00

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


1) 函数说明

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

该函数预期接收一个包含美国英语日期格式的字符串并尝试将其解析为Unix时间戳(自January 1 1970 00:00:00 GMT起的秒数)


2)$time的几种示例展示

strtotime('now');
strtotime(' 9 October 2013');//2013年10月9号对应的时间戳
strtotime('+1 week 2 days 4 hours 2 senconds');//当前时间的1个周2天4小时2分钟后的时间戳
strtotime('next Thursday');//下个周四对应的时间戳
strtotime('last Monday');//上个月对应的时间戳
strtotime('-2 month');或strtotime('-2 Month');//两个月之前对应的时间戳

5 根据区域设置格式化本地时间/日期


1)函数说明

string strftime(string $format [, int $timestamp = time()]

返回用给定的格式字符串对给出的timestamp进行格式输出后的字符串。如果没有给出时间戳则用当前的本地时间。月份和星期几以及其他语言有关的字符串写法和用setlocale()设定的当前的区域有关。


2) 参数$format里能够识别的格式字串有一下标记

格式 描述 返回值示例 日 --- %a 当前区域星期几的简写 Sun到Sat

%A 当前区域星期几的全称 Sunday到Saturday

%d 月份中的第几天,十进制数字 01到31

%e 月份中的第几天,十进制数字,一位数字前会加上一个空格(范围从' 1'到'31')在Windows上尚未按描述实现。 1到31

%j 年份中的第几天,带前导零的3位十进制数(范围从0001到366) 001到366

%u 符合ISO-8601星期几的十进制数表达[1,7],1表示星期一 1(星期一)到7(星期日)

%w 星期中的第几天,星期天为0 0(星期天)到6(星期天)

周---

%U 本年的第几周,从第一周的第一个星期天作为第一天开始 13(for the 13th week of the year)

%V 本年第几种的ISO-8601:1988格式,范围从01到53,第一周是本年的第一个至少还有4天的星期,星期一作为每周的第一天。(用%G或%g作为指定时间戳相应周数的年份组成)

%W 本周的第几周数,从第一周的第一个星期一作为第一天的开始 46

月---

%b 当前区域月份的简写 Jan到Dec

%B 当前区域月份的全称 January到December

%h 当前区域月份的简写(%b的别名) Jan到Dec

%m 两位数的月份 01(一月份)到12(十二月份)

年---

%C 两位数显示世纪(年份除以100,截取整数) 19是20世纪

%g 2位数的年份,符合ISO-8601:1988星期数(参见%V)。和%V的格式和值是一样,只处理如果ISO星期数属于前一年或者后一年,则使用那一年。 比如2009年1月6日那一周是09年

%G %g的完整四位数版本 比如:20091月3日那一周是2008

%y 两位数显示年份

%Y 四位数显示年份

时间---

%H 以24小时格式显示两位小时数 00到23

%I 以12小时格式显示两位小时数 01到12

%l(L的小写) 以12小时格式显示小时数,单个数组前含空格 1到12

%M 两位的分钟数 00到59

%p 指定时间的大写”AM“或 ”PM“ 比如00:31是AM,22:23是PM

%P 指定时间的小写"am"或"pm"

%r 和"%I:%M:%S %p" 比如21:34:17是09:34:17 PM

%R 和"%H:%M"一样 比如: 12:35 AM 是00:35, 4:44 PM 是16:44

%S 两位数字表示秒 00到59

%T 和"%H:%M:%S"一样 比如:09:34:17 PM是21:34:17

%X 当前区域首选的时间表示法,不包括日期 例如03:59:16或15:59:16

%z 从UTC的失去偏移或简写(有操作系统决定) 比如东部时间是-0500或EST

%Z %z没有给出的UTC的时区偏移或简写(由操作系统决定) 比如-0500或EST

转载于:https://my.oschina.net/syc2013/blog/179282

你可能感兴趣的文章
我的友情链接
查看>>
ActionScript 3.0游戏编程——创建简单的ActionScript程序
查看>>
函数const
查看>>
关于“Return empty arrays or collections, not nulls”的思考
查看>>
CodeForces-1167E-Range Deleting
查看>>
兼容多个版本程序集的web.config配置
查看>>
JS 之如何在插入元素时插在原有元素的前面而不是末尾
查看>>
java finally块执行时机分析
查看>>
day6 字符串
查看>>
JMeter5.0 边界提取器使用
查看>>
android 热修复框架Tinker的详细简单使用
查看>>
Windows Azure 上的 Symfony,适用于 PHP 开发者的强大组合
查看>>
堆和栈的区别 (转贴)
查看>>
通过包名获取该包下的所有类
查看>>
FIND_IN_SET函数
查看>>
【JavaScript学习笔记】画图
查看>>
反向代理与直接访问Ping性能分析
查看>>
Linux写时拷贝技术(copy-on-write)
查看>>
opencv视频读取问题
查看>>
java Iterator Fail-fast机制
查看>>