为什么某些选项在 Windowsdate()
上strftime()
不受支持?我认为任何与日期相关的东西都是每个系统都应该支持的。是因为日期在内部存储的方式吗?
问问题
1979 次
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
这是因为date
和strftime
只是底层系统功能的薄包装,因此它们只接受操作系统支持的那些功能。
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 回答