使用PHP的日期与时间函数技巧


Posted in PHP onApril 24, 2008

PHP的日期时间函数date()

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-6th

大写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,闰年、星期、天

echo date('L'); 
今年是否闰年:0 echo date('l'); 
今天是:Tuesday 
echo date('D'); 
今天是:Tue

大写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日期。

小小的date()函数就显示出了PHP的强大功能和迷人魅力,再比较下ASP,呵呵。

PHP日期时间函数date time:如何显示系统当前时间与时钟同步

告诉你一个简单的方法:<?php echo date("Y-m-d H:i:s", time()); ?>
结果为:2009-10-06 16:21:38
time()函数:显示系统当前时间。
date()函数:将服务器的时间格式化。

语法: string date(string format, int [timestamp]);
函数种类: 时间日期
返回值: 字符串

参数如下:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
如果显示的时间与系统不一致,就要改PHP.ini配置文件。
系统默认是UTC时间
可以打开php.inc
设置 date.timezone = PRC

PHP日期时间函数的高级应用技巧

PHP的日期时间函数date()中介绍了PHP日期时间函数的简单用法,这类将介绍更多的函数来丰富我们的应用。

checkdate($month,$date,$year)

如果应用的值构成一个有效日期,则该函数返回为真。例如,对于错误日期2005年2月31日,此函数返回为假。

在日期用于计算或保存在数据库中之前,可用此函数检查日期并使日期生效。

<?php 
// returns false 
echo checkdate(2,30,2005) ? "valid" : "invalid"; 
// returns true 
echo checkdate(4,6,2010) ? "valid" : "invalid"; 
?>

getdate($ts)

在没有自变量的情况下,该函数以结合数组的方式返回当前日期与时间。数组中的每个元素代表日期/时间值中的一个特定组成部分。可向函数提交可选的时间标签自变量,以获得与时间标签对应的日期/时间值。

应用此函数来获得一系列离散的,容易分离的日期/时间值。

<?php 
// get date as associative array 
$arr = getdate(); 
echo "Date is " . $arr['mday'] . " " . $arr['weekday'] . " " . $arr['year']; 
echo "Time is " . $arr['hours'] . ":" . $arr['minutes']; 
?>

mktime($hour, $minute, $second, $month, $day, $year) 此函数的作用与getdate()的作用相反:它由一系列的日期与时间值生成一个UNIX时间标签(GMT时间1970年1月1日到现在消逝的秒数)。不用自变量时,它生成当前时间的UNIX时间标签。

用此函数获得即时时间的UNIX时间标签。这种时间标签通常用于许多数据库与程序语言中。

<?php 
// returns timestamp for 13:15:23 7-Jun-2006 
echo mktime(13,15,23,6,7,2006); 
?>

date($format, $ts) 此函数将UNIX时间标签格式化成一个可人为阅读的日期字符串。它是PHP日期/时间API中功能最为强大的函数,可用在一系列的修正值中,将整数时间标签转变为所需的字符串格式。

为显示格式化时间或日期时,应用此函数。

<?php 
// format current date 
// returns "13-Sep-2005 01:16 PM" 
echo date("d-M-Y h:i A", mktime()); 
?>

strtotime($str)

此函数将可人为阅读的英文日期/时间字符串转换成UNIX时间标签。

应用此函数将非标准化的日期/时间字符串转换成标准、兼容的UNIX时间标签。

<?php 
// returns 13-Sep-05 
echo date("d-M-y", strtotime("today")); 
// returns 14-Sep-05 
echo date("d-M-y", strtotime("tomorrow")); 
// returns 16-Sep-05 
echo date("d-M-y", strtotime("today +3 days")); 
?>

strftime($format,$ts)

如前面的setlocale()函数定义的那样,此函数将UNIX时间标签格式化成适用于当前环境的日期字符串。

应用此函数建立与当前环境兼容的日期字符串。

<?php 
// set locale to France (on Windows) 
setlocale(LC_TIME, "fra_fra"); // format month/day names 
// as per locale setting 
// returns "septembre" and "mardi" 
echo strftime("Month: %B "); 
echo strftime("Day: %A "); 
?>

microtime() 如前面的setlocale()函数定义的那样,此函数将UNIX时间标签格式化成适用于当前环境的日期字符串。

应用此函数建立与当前环境兼容的日期字符串。

<?php 
// get starting value 
$start = microtime(); // run some code 
for ($x=0; $x<1000; $x++) { 
$null = $x * $x; 
} 
// get ending value 
$end = microtime(); 
// calculate time taken for code execution 
echo "Elapsed time: " . ($end - $start) ." sec"; 
?>

gmmktime($hour, $minute, $second, $month, $day, $year) 此函数由一系列用GMT时间表示的日期与时间值生成一个UNIX时间标签。不用自变量时,它生成一个当前GMT即时时间的UNIX时间标签。

用此函数来获得GMT即时时间的UNIX时间标签。

<?php 
// returns timestamp for 12:25:23 9-Jul-2006 
echo gmmktime(12,25,23,7,9,2006); 
?>

gmdate($format, $ts) 此函数将UNIX时间标签格式化成可人为阅读的日期字符串。此日期字符串以GMT(非当地时间)表示。

用GMT表示时间标签时应用此函数。

<?php 
// format current date into GMT 
// returns "13-Sep-2005 08:32 AM" 
echo gmdate("d-M-Y h:i A", mktime()); 
?>

date_default_timezone_set($tz)、date_default_timezone_get()

此函数此后所有的日期/时间函数调用设定并恢复默认的时区。

注:此函数仅在PHP 5.1+中有效。

此函数是一个方便的捷径,可为以后的时间操作设定时区。

<?php 
// set timezone to UTC 
date_default_timezone_set('UTC'); 
?>
PHP 相关文章推荐
我的论坛源代码(六)
Oct 09 PHP
基于mysql的bbs设计(五)
Oct 09 PHP
php桌面中心(二) 数据库写入
Mar 11 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
html静态页面调用php文件的方法
Nov 13 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
追求程序速度,而不是编程的速度
Apr 23 #PHP
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 #PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 #PHP
Gregarius中文日期格式问题解决办法
Apr 22 #PHP
PHP下用rmdir实现删除目录的三种方法小结
Apr 20 #PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 #PHP
php采集速度探究总结(原创)
Apr 18 #PHP
You might like
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
一些PHP的面试题
2015/05/06 面试题
利用指针变量实现队列的入队操作
2012/04/07 面试题
教师实习自我鉴定
2013/12/13 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
公司聘任书模板
2014/03/29 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
优秀团员事迹材料
2014/12/25 职场文书
党小组鉴定意见
2015/06/02 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript