PHP:strftime(),date()或DateTime,哪个更好?

26

我很好奇在PHP中使用strftime()date()有哪些优势或者差别。我下载的一个类使用了strftime()。但是,由于它在某些系统上不支持所有的时间格式,我想改用date()。我想知道使用其中一个是否具有主要区别或优势。

另外,strftime()仅支持该服务器c库支持的日期格式。 date()是否也有类似的限制?


7
还有另一个选择,DateTime - Pekka
非常小的性能差异...微不足道 - Ibu
@Pekka 如果只是想查找时间或日期,为什么要使用DateTime而不是date()strftime() - Chaim
@Ibrahim Diallo 所以,从技术上讲,哪个更快? - Chaim
2
@Pekka, @Chaim DateTime封装了其他函数的功能(strtotime(),date(),date_diff()等)。在许多情况下,面向对象的DateTime代码比使用“旧”函数更清晰。 - James C
6
@James,DateTime 不仅是一个包装器 - 它在内部使用 64 位日期,因此可以处理任何类型的日期(而不仅仅是 1902/1970 到 2038 年)。@Chaim,“更快”?这只有在您计划在每个请求中计算成千上万个日期时才会产生真正的区别。 - Pekka
2个回答

16

我认为你会发现date()strftime()更广泛地使用。

date()只能返回英文的月份/日期名称,并且无法为其他语言提供翻译。

性能影响应该可以忽略不计。

如果你决定使用日期函数,我非常推荐使用DateTime,它使得大多数与日期和时间相关的操作比使用原始的过程式函数更加容易。


13

使用strftime()比date()有什么优势吗?

date手册页面中可以看到:

如果要在其他语言中格式化日期,应该使用setlocale()和strftime()函数,而不是date()。


那就意味着如果我只使用英语,那么date()就足够好了,甚至更好? - Chaim
1
但这可能需要一些时间,您的应用程序需要i18n。使用strftime()方法,您已经为此做好了准备。 - Fanda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接