WordPress 和 php.ini 里面都设置了时区为 Asia/Shanghai,但是发出去的邮件时间依然是 0 时区的?

2014-07-31 11:39:26 +08:00
 66beta
其实很简单的代码:
$str = date("H:i:s");
wp_mail('abc@gmail.com', 'send testing', "This email is from Wordpress send at $str");

如果直接在页面输出,时区是对的

问题是用wp_mail发送到gmail后,看到是0时区的时间(这时间只是邮件的正文而已,不是邮件的发送时间~)

从代码来讲 $str = date("H:i:s"); 每次都获取当前时间,为啥,为啥???
3532 次点击
所在节点    PHP
4 条回复
msg7086
2014-07-31 13:58:19 +08:00
输出在页面与发邮件是同一个上下文?

会不会是wp自己改掉了默认时区?
kmvan
2014-07-31 14:19:24 +08:00
直接用mail时间有没错?
66beta
2014-07-31 14:48:39 +08:00
@msg7086 @kmvan
我擦,是WP的插件系统的设定问题

写插件的时候,需要使用WP自己的函数 current_time("H:i:s");
http://codex.wordpress.org/Function_Reference/current_time
msg7086
2014-07-31 16:00:37 +08:00
"In WordPress, PHP's time() will always return UTC"

看来猜对了。我觉得你应该能猜到像WP这样的系统在初始化的时候会reset掉各种东西。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX