Phpcms V9程序调用时间方法及PHP日期时间格式化详解

来自:互联网
时间:2018-08-26
阅读:

在使用Phpcms v9过程中,很多时候会碰到时间的调用,比如文章的发布时间、更新时间、会员注册时间、登录时间等,有时也会碰到1970-01-01或者时间戳转码的问题,在这里与大家分享Phpcms V9程序调用时间方法及PHP日期时间格式化详解。

首先,我们来了解下PHP里边的时间戳。

广义上讲,时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。

而PHP语言里边说的时间戳,是指Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如Linux系统),也在许多其他操作系统中被广泛采用。

Unix系统规定当前时间的timestamp等于1970年1月1日0点到当前时间之间的秒数,所以当timestamp=0的时候,时间就是1970年1月1日。

php中获取时间戳的方法是:

time(); Date();

现在我们具体说下Phpcms v9里边的时间戳和时间格式化调用:

一般我们是这样标准化调用日期时间:

{date('Y-m-d H:i:s', $r['inputtime'])}

其中$r是根据loop循环来的,输出为:2015-11-02 13:56:32,年月日+时间。

当然也可以具体根据需要调用,比如{date('Y',$rs[inputtime])}年、{date('m',$rs[inputtime])}月、{date('d',$rs[inputtime])}日。

具体说明:

{date('Y',$inputtime);} 4位年份 输出为:2013 或 2014
 
{date('y',$inputtime);} 2位年份 输出为:10 或 11
 
{date('F',$inputtime);} 英文月份全称 输出为:January 到 December
 
{date('M',$inputtime); } 英文月份缩写 输出为:Jan 到 Dec
 
{date('m',$inputtime);} 前导零数字月份 输出为:01 到 12
 
{date('n',$inputtime); } 数字月份 输出为:1 到 12
 
{date('d',$inputtime);} 前导零日期 输出为:01 到 31
 
{date('j',$inputtime);} 日期 输出为:1 到 31
 
{date('l',$inputtime);} 英文星期全称 输出为:Sunday 到 Saturday
 
{date('D',$inputtime);} 英文星期缩写 输出为:Mon 到 Sun
 
{date('N',$inputtime);} 格式数字星期 输出为:1 到 7
 
{date('Y-m-d H:i:s',$rs[inputtime]+30*60)} 在获取文章时间后加一段时间

再进一步,我们来说说时间戳转换。

php strtotime() 函数将任何英文文本的日期时间描述解析为Unix 时间戳。

phpcms标签里的updatetime和inputtime标签区别:

①updatetime是更新时间(也叫修改时间,就是后台的文章列表看到的时间);
②inputtime是第一次写文章时的发布时间(就是添加文章或者修改文章时缩略图下方的时间)。

Phpcms V9调用发布时间时出现1970年的原因:

如果用{loop $data $k $v}调用,那么就使用{date('Y-m-d H:i:s',$v[inputtime])},对应用“v”调用;如果用{loop $data $r},那么就使用{date('Y-m-d H:i:s',$r[inputtime])},对应用“r”调用。

这是在列表页调用,如果在文章页,直接用{$inputtime}也是可以的。

也就是说,需要注意调用数据的方式,如果调用的数据为空,则显示0,自然就是1970-01-01了。

返回顶部
顶部