在Windows和Linux上,date()和strftime()不一样.为什么?

gam*_*ver 2 php cross-platform date strftime

为什么在Windows上支持date()strftime()不支持某些选项?我认为与日期相关的任何事情都是每个系统都应该支持的.是因为日期内部存储的方式?

Pek*_*ica 6

上日期()手册指出两点不同:

  • 在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这样的库.