在python中,我可以做到
import datetime
print datetime.datetime.now().strftime('%Y-%m-%d')
# prints `2014-06-27`.
同样,在node.js中:
console.log(new Date().toDateString());
// Fri Jun 27 2014
当我在php中尝试相同时:
<?php
print date('Y-m-d');
?>
我收到了这个
警告:date():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区。在....
此消息背后的理由是什么?为什么python或节点不麻烦?使用系统时区到底有什么“不安全”?
由于有很多关于此错误的帖子,请仔细阅读:我不要求如何解决此问题(非常明显) ),我想知道为什么我首先得到这条消息。
答案 0 :(得分:3)
PHP
传统上用于Web开发,因此一个合理的原因是Web服务的使用者不会与托管服务器的时区处于同一时区,并且可能是配置的for(就系统时间而言)。
警告在系统用户看到客户端正确时间的上下文中是有意义的。
对here进行了一些讨论,其中提到了我上面给出的理由。来自同一页面的另一个理由,来自可能是PHP语言开发人员的人。
不 - 作为管理员,您需要做出明智的决定 你想要什么时区。有太多的bug 报告人们没有线索,所以现在我们发出警告。
答案 1 :(得分:0)
阅读完本帖后
我了解此警告没有有效的技术原因。唯一的原因是来自php组的人认为减少bugs.php.net上的bug报告数量会很有用。所以,基本上是一种magic_quotes
种东西。