2

为什么某些选项在 Windowsdate()strftime()不受支持?我认为任何与日期相关的东西都是每个系统都应该支持的。是因为日期在内部存储的方式吗?

4

2 回答 2

6

date() 手册指出了两个不同点:

  • 在 PHP 5.1.0 之前的 Windows 上,时间戳的范围是 1970 到 2038。
  • 根据用户贡献的评论,微秒开关不能在 Windows 上使用。

对于 strftime():

您的 C 库可能不支持所有转换说明符,在这种情况下,PHP 的 strftime() 将不支持它们。此外,并非所有平台都支持负时间戳,因此您的日期范围可能会限制为不早于 Unix 纪元。这意味着 %e、%T、%R 和 %D(可能还有其他)——以及 1970 年 1 月 1 日之前的日期——将无法在 Windows、某些 Linux 发行版和其他一些操作系统上运行。对于 Windows 系统,可以在 » MSDN 中找到支持的转换说明符的完整概述。

你是这个意思吗?好吧,那里已经解释了原因,不支持负时间戳。我认为对此无能为力。

如果这给您带来问题,您可能想要使用Zend_Date 之类的库。

于 2010-01-09T17:40:17.307 回答
0

这是因为datestrftime只是底层系统功能的薄包装,因此它们只接受操作系统支持的那些功能。

http://linux.die.net/man/3/strftime
http://msdn.microsoft.com/en-us/library/fe06s4ak%28VS.71%29.aspx

于 2010-01-09T17:52:42.063 回答