[转]在 WordPress 中如何使用 Date 和 Time

17102238_2yvv.jpg本文通过 OscPress 同步至oschina,最新版本请查看原文:
https://www.cellmean.com/?p=1055

使用 Date 和 Time 是程序员一个非常日常的工作,比如定时发布,定时抓取信息等。PHP 提供很多 date/time 函数,但是 WordPress 有自己的一套,下面讲解下 WordPress 中使用 Date 和 Time 的经验和坑。

在 WordPress 中如何使用 Date 和 Time

时区 – Timezone

使用 date/time 第一个的要注意的时时区,很多错误都是因为这个引起的,比如定时发布的文章在错误的时间发布了(比如你想是北京时间明天早上8点发布的,但是发布在格林尼 治时间早上8点,即北京时间0点)。这种问题是非常难受的,并且非常难以去 debug,因为你得等着它再次运行才行。

WordPress 后台是可以让你设置时区的,在 设置 > 常规,并且可以使用下面代码获取:

$timezone_offet = get_option( 'gmt_offset' );

如果你的时间戳是 GMT,你可以使用下面代码转成本地时间:

$timezone_offet = get_option( 'gmt_offset' );
$time += $timezone_offet * 3600;

千万不要用 time()

time() 是用来获取当前时间的 UNIX 时间戳格式,但是 WordPress 有自己用来处理时间(可以同时处理 GMT 和本地时间)的函数:current_time()

current_time( $type, $gmt = 0 );

这个函数返回博客的当前本地时间,可以使 MySQL 时间数据格式(YYYY-MM-DD HH:MM:SS),也可以是 UNIX 时间戳格式,第三个参数是用来设置返回 GMT 时间还是博客本地时间。

所以如果你的代码用的是 time(),改成:current_time( 'timestamp', 1 ),将返回 GMT 时间,如果要获取本地时间,使用 current_time( 'timestamp' )

Date 和 time 格式

WordPress 让我们在 设置 > 常规 修改默认的时间格式,所以我们尽量在代码使用这个格式,而不要使用 date() 来生成,除非你自己要生成特殊的格式。

使用下面代码获取 WordPress 默认设置的时间格式:

$date_format = get_option( 'date_format' );
$time_format = get_option( 'time_format' );

下面例子以默认格式显示当前时间:

$date_format = get_option( 'date_format' );
$time_format = get_option( 'time_format' );
echo date( "{$date_format} {$time_format}", current_time( 'timestamp' ) );

一句话总结:我们在 PHP 中可以使用 Date 和 Time 做很多事情,但是一定要用 WordPress 方式使用它们。

 

 

感谢阅读本文,欢迎访问 微言 获取更多内容或 查看原文

 

转载于:https://my.oschina.net/falcon10086/blog/713193

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值