PHP日期与时间

<?php
	/*
	1.日期和时间函数
	(1)获得本地时间戳
	mktime() 将一个时间转换成UNIX时间戳
	int mktime(int hour,int minute,int second,int mount,int day,int year,int[is_dst])
	如果要不带参数调用mktime,等同于调用time(),,应用其代替*/
	echo "time()返回的时间戳 ".time().'<br/>'; 
	echo "当前日期为 ".date("YY-m-d",time()).'<br/>';
	echo "当前时间为 ".date("H:i:s",time()).'<br/>';
	/*(2)获取当前时间戳
	time()获得当前的UNIX时间戳  返回值为UNIX纪元到当前时间的描述*/
	$nextWeek=time()+(7*24*60*60);
	echo 'Now:'.date('Y-m-d').'<br/>';
	echo 'Next Week:'.date('Y-m-d',$nextWeek).'<br/>';

	/*
	(3)获取当前日期和时间
	date()获取当前日期和时间
	date(string format[,int timestamp])
	预定义常量
	DATE_ATOM 原子钟格式			DATE_COOKIE HTTP Cookies格式
	DATE_ISO8601 ISO8601格式		DATE_RFC822 RFC822格式
	DATE_RFC850 RFC850格式		DATE_RSS RSS格式
	DATE_W3C W3C格式
	*/
	echo "DATE_ATOM=".date(DATE_ATOM).'<br/>';
	echo "DATE_COOKIE=".date(DATE_COOKIE).'<br/>';
	echo "DATE_ISO8601=".date(DATE_ISO8601).'<br/>';
	echo "DATE_RFC822=".date(DATE_RFC822).'<br/>';
	echo "DATE_RFC850=".date(DATE_RFC850).'<br/>';
	echo "DATE_RSS=".date(DATE_RSS).'<br/>';
	echo "DATE_W3C=".date(DATE_W3C).'<br/>';

	/*
	(4)获取日期信息 array getdate(int timestamp)
	返回数组形式的日期和时间信息 如果没有参数 已当前时间为准
	关联数组元素
	second 秒 minutes 分钟 hours 小时
	mday 月中的第几天 wday 星期中的第几天 
	mon 月份 year 年份 yday 一年中的第几天
	weekday 星期几的完整文本表示 month 月份的完整表示 
	0 从UNIX纪元开始到现在时间的秒数 
	*/
	$arr=getdate();
	echo $arr['year'].'-'.$arr['mon'].'-'.$arr['mday'].'<br/>';
	echo $arr['hours'].'-'.$arr['minutes'].'-'.$arr['weekday'].'<br/>';
	echo "Today is the ".$arr['yday']." th of year<br/>";

	/*
	(5)检验日期的有效性 bool checkdate(int month,int day,int year)*/
	$year=2008;
	$month=2;
	$day1=29;
	$day2=30;
	var_dump(checkdate($month, $day1, $year));
	echo '<br/>';
	var_dump(checkdate($month, $day2, $year));
	echo '<br/>';

	/*输出格式化的日期与时间
	d - 一个月中的第几天(从 01 到 31)
    D - 星期几的文本表示(用三个字母表示)
    j - 一个月中的第几天,不带前导零(1 到 31)
    l('L' 的小写形式)- 星期几的完整的文本表示
    N - 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示Sunday[星期日])
    S - 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)
    w - 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
    z - 一年中的第几天(从 0 到 365)
    W - 用 ISO-8601 数字格式表示一年中的星期数字(每周从 Monday[星期一]开始)
    F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
    m - 月份的数字表示(从 01 到 12)
    M - 月份的短文本表示(用三个字母表示)
    n - 月份的数字表示,不带前导零(1 到 12)
    t - 给定月份中包含的天数
    L - 是否是闰年(如果是闰年则为 1,否则为 0)
    o - ISO-8601 标准下的年份数字
    Y - 年份的四位数表示
    y - 年份的两位数表示
    a - 小写形式表示:am 或 pm
    A - 大写形式表示:AM 或 PM
    B - Swatch Internet Time(000 到 999)
    g - 12 小时制,不带前导零(1 到 12)
    G - 24 小时制,不带前导零(0 到 23)
    h - 12 小时制,带前导零(01 到 12)
    H - 24 小时制,带前导零(00 到 23)
    i - 分,带前导零(00 到 59)
    s - 秒,带前导零(00 到 59)
    u - 微秒(PHP 5.2.2 中新增的)
    e - 时区标识符(例如:UTC、GMT、Atlantic/Azores)
    I(i 的大写形式)- 日期是否是在夏令时(如果是夏令时则为 1,否则为 0)
    O - 格林威治时间(GMT)的差值,单位是小时(实例:+0100)
    P - 格林威治时间(GMT)的差值,单位是 hours:minutes(PHP 5.1.3 中新增的)
    T - 时区的简写(实例:EST、MDT)
    Z - 以秒为单位的时区偏移量。UTC 以西时区的偏移量为负数(-43200 到 50400)
    c - ISO-8601 标准的日期(例如 2013-05-05T16:34:42+00:00)
    r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
    U - 自 Unix 纪元(January 1 1970 00:00:00 GMT)以来经过的秒数*/
    echo "输出单个变量".date("Y").'-'.date("m").'-'.date("d").'<br/>';
    echo "输出组合变量".date("Y-m-d").'<br/>';
    echo "输出更详细的".date("Y-m-d H:i:s").'<br/>';
    echo "还可以更详细吗".date("Y-m-d H:i:s T").'<br/>';

	/*
	(7)显示本地化的日期和时间
	setlocalez()改变PHP默认的本地化环境
	string setlocale(string category[,string locale])
	category的选项
	LC_ALL 包含了下面所有设置本地化规则
	LC_COLLATE 字符串比较
	LC_ATYPE 字符串分类 转换
	LC_MONETARY 本地环境的货币形式
	LC_NUMERIC 本地环境的数值形式
	LC_TIME 本地环境的时间形式
	如果locale为空 就会使用系统环境变量的locale或lang的值 否则就会应用locale所指定的本地环境 如en_US为美国 chs指简体中文 cht为繁体中文*/
	/*
	(8)strftime()
	根据本地环境设置来格式化输出日期与时间
	string strftime(string format,int timestamp)

    %a - 星期几名称的简写
    %A - 星期几名称的全称
    %b - 月份名称的简写
    %B - 月份名称的全称
    %c - 首选的日期和时间表示法
    %C - 表示世纪的数字(年份除以 100,范围从 00 到 99)
    %d - 一个月中的第几天(01 到 31)
    %D - 时间格式,与 %m/%d/%y 表示法相同
    %e - 一个月中的第几天(1 到 31)
    %g - 与 %G 表示法类似,但不带世纪
    %G - 与 ISO 星期数对应的 4 位数年份(见 %V)
    %h - 与 %b 表示法相同
    %H - 小时,使用 24 小时制(00 到 23)
    %I - 小时,使用 12 小时制(01 到 12)
    %j - 一年中的第几天(001 到 366)
    %m - 月份(01 到 12)
    %M - 分
    %n - 换行符
    %p - 与给定的时间值相对应的 am 或 pm
    %r - a.m. 和 p.m. 的时间标记法
    %R - 24 小时制的时间标记法
    %S - 秒
    %t - tab 制表符
    %T - 当前时间,与 %H:%M:%S 表示法相同
    %u - 星期几的数字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系统中,Sunday[星期日] = 1
    %U - 当年包含的周数,从第一个星期日开始,作为第一周的第一天
    %V - 当年包含的 ISO 8601 格式下的周数(01 到 53),week 1 表示当年的第一周,至少要有四天,且以星期一作为周的第一天
    %W - 当年包含的周数,从第一个星期一开始,作为第一周的第一天
    %w - 以十进制数形式表示一周中的某天,Sunday[星期日] = 0
    %x - 首选的日期表示法,不带时间
    %X - 首选的时间表示法,不带日期
    %y - 不包含表示世纪的数字的年份表示(范围从 00 到 99)
    %Y - 包含表示世纪的数字的年份表示
    %Z 或 %z - 时区名称或简写
    %% - 输出一个 % 字符
	*/
	setlocale(LC_ALL,"en_US");
	echo "美国格式".strftime("Today is %A").'<br/>';
	setlocale(LC_ALL, "chs");
	echo "简体中文".strftime("今天是星期 %A").'<br/>';

	/*
	(8)将日期和时间解析为UNIX时间戳
	int strtotime(string time[,int now])
	如果参数time是绝对时间 now参数不起作用 如果time是相对时间 那么其对于时间是由now提供的 如果没有参数now 对应时间就是当前时间 解析失败返回false
	*/
	echo strtotime("now").'<br/>';
	echo "输出时间".date("Y-m-d H:i:s",strtotime("now")).'<br/>';
	echo strtotime("21 May 2009").'<br/>';
	echo "输出时间".date("Y-m-d H:i:s",strtotime("21 May 2009")).'<br/>';
?>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值