php格式化日期 年月日,PHP中常见的格式化显示时间日期函数

php中date函数可以实现日期与时间格式化显示了,这个也是我们常用到的一些实例,下面给各位朋友介绍介绍,希望此教程对大家有帮助。

time()函数

time() 函数返回当前时间的 Unix 时间戳。返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。

 代码如下复制代码

$time = time();

echo($time . "
");

echo(date("D F d Y", $time));

?>

程序运行结果:

1292984702

Wed December 22 2010

1292984702单位是秒,从1970 年 1 月 1 日 00:00:00到现在的秒数。

有时候我们想知道下一周的今天的一些情况,比如是几号,星期几等等,我们可以这么写:

 代码如下复制代码

$nextWeek = time() (7 * 24 * 60 * 60); // 7 days; 24 hours; 60 mins; 60secs

echo 'Now:       '. date('Y-m-d') ."
";

echo 'Next Week: '. date('Y-m-d D', $nextWeek) ."
";

?>

程序运行结果:

Now: 2010-12-22

Next Week: 2010-12-29 Wed

date()函数

这个函数就比较熟悉了。

 代码如下复制代码

echo("Result with date():
");

echo(date("l") . "
");

echo(date("l dS of F Y h:i:s A") . "
");

echo("Oct 3,1975 was on a ".date("l", mktime(0,0,0,10,3,1975))."
");

echo(date(DATE_RFC822) . "
");

echo(date(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "
");

echo("Result with gmdate():
");

echo(gmdate("l") . "
");

echo(gmdate("l dS of F Y h:i:s A") . "
");

echo("Oct 3,1975 was on a ".gmdate("l", mktime(0,0,0,10,3,1975))."
");

echo(gmdate(DATE_RFC822) . "
");

echo(gmdate(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "
");

?>

程序运行结果:

Result with date():

Wednesday

Wednesday 22nd of December 2010 02:36:18 AM

Oct 3,1975 was on a Friday

Wed, 22 Dec 10 02:36:18 0000

1975-10-03T00:00:00 00:00

Result with gmdate():

Wednesday

Wednesday 22nd of December 2010 02:36:18 AM

Oct 3,1975 was on a Friday

Wed, 22 Dec 10 02:36:18 0000

1975-10-03T00:00:00 00:00

所以,我们应该给一个兼容性的写法,统一使用gmdate,并手工设置当前时区,写法改进如下:

 代码如下复制代码

echo gmdate('Y-m-d H:i:s', time() 3600 * 8);

这样不管在Linux Apache下还是Windows下都得到了正确的结果,当然这样写还有一个好处,当网站是面向全世界的时候,那么网站用户只要设置所在的时区,程序自动根据用户设置的时区进行时间计算,数据库中信息发布时间只存当前的time()所生成的时间,那么在中国 8时区看到的发布时间是:2007-03-14 12:15:27,那么在欧洲 2时区用户看到这个信息的发布时间是:2007-03-14 06:15:27,这样信息的时间就全部对应正确了。

一个用于社区的自定格式显示日期

 代码如下复制代码

/**

* 格式化显示时间函数

*

* 类似豆瓣(几秒前/几分前/今天3:50/昨天3:50/3-6)

*

* @param $timestamp 时间戳 必选参数,后面三个参数可选,为提高计算速度,建议直接赋值

* @param $now 当前时间戳

* @param $today 今天00:00时间戳

* @param $yesterday 昨天00:00时间戳

* @return string

*/

function timeshow($timestamp,$now=0,$today=0,$yesterday = 0){

if(! $timestamp){return '';}

if(! $now){$now = time();}

if(! $today){$today = strtotime("today");}

if(! $yesterday){$yesterday = $today-86400;}

$cha = $now-$timestamp;

if($cha<60){

return $cha."秒前";

}elseif($cha<60*60){

$min = floor($cha/60);

return $min."分钟前";

}elseif($timestamp>=$today){

return date("今天H:i",$timestamp);

}elseif($timestamp>=$yesterday){

return date("昨天H:i",$timestamp);

}else{

return date("m-d",$timestamp);

}

}

文章最后给大家介绍一些参数

格式化方式说明:
格式化方式说明
Y4位数字年,y为2位数字,如99即1999年
m数字月份,前面有前导0,如01。n 为无前导0数字月份
F月份,完整的文本格式,例如 January 或者 March
M三个字母缩写表示的月份,例如 Jan 或者 Mar
d月份中的第几天,前面有前导0,如03。j 为无前导0的天数
w星期中的第几天,以数字表示,0表示星期天
z年份中的第几天,范围0-366
W年份中的第几周,如第32周
H24小时格式,有前导0,h为12小时格式
G24小时格式,无前导0,g为对应12小时格式
i分钟格式,有前导0
s秒格式,有前导0
A大写上下午,如AM,a为小写

可选参数 timestamp 表示时间戳,默认为 time() ,即当前时间戳。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值