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

Posted

技术标签:

【中文标题】PHP:strftime()、date() 或 DateTime,哪个更好?【英文标题】:PHP: strftime(), date() or DateTime, Which is better? 【发布时间】:2011-08-21 22:02:05 【问题描述】:

我很想知道在 php 中使用strftime() 是否比date() 有任何优势,反之亦然。

我下载的一个类使用了strftime()。但是,由于它在某些系统上不支持所有时间格式,因此我想将其更改为使用 date()。我想知道使用其中一种是否有任何重大差异或优势。

strftime() 仅支持该服务器 c 库支持的日期格式这一事实呢? date()有类似的限制吗?

【问题讨论】:

还有另一种选择,DateTime 非常小的性能差异...很小 @Pekka 要简单地找出时间或日期,为什么要使用DateTime 而不是date()strftime() @Pekka, @Chaim DateTime 包装了其他函数(strtotime()、date()、date_diff() 等)的功能。在很多情况下,OO DateTime 代码比使用“旧”函数更简洁。 @James 不,DateTime 不仅仅是一个包装器 - 它在内部使用 64 位日期,因此可以处理任何类型的日期(不仅是 1902/1970 到 2038)@Chaim 更快?除非您计划为每个请求计算数千或数十万个日期,否则这不会对现实世界产生任何影响。 【参考方案1】:

在 PHP 中使用有什么优势 strftime() 超过 date()

来自date manual page:

要格式化其他语言的日期, 你应该使用setlocale() 和 strftime() 函数代替 日期()。

【讨论】:

也就是说,如果我只使用英语,那么 date() 就足够了,或者更好? 但这可能需要一段时间,您的应用程序中将需要 i18n。使用 strftime() 方式,您已准备就绪。【参考方案2】:

我想你会发现date()strftime() 使用更广泛

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

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

如果您决定采用日期路线,我真的建议您使用DateTime,这使得大多数与日期和时间相关的操作比使用原始程序函数更容易。

【讨论】:

以上是关于PHP:strftime()、date() 或 DateTime,哪个更好?的主要内容,如果未能解决你的问题,请参考以下文章

Rails:如何构建每天/每月/每年的统计数据或如何缺少与数据库无关的 SQL 函数(例如:STRFTIME、DATE_FORMAT、DATE_TRUNC)

datetime和date如何转json

PHP格式mysql日期

Time

在python中迭代日期[重复]

存成时间格式 strftime