【问题标题】:strtotime not working with mm-dd-yyyystrtotime 不适用于 mm-dd-yyyy
【发布时间】:2011-12-18 20:05:05
【问题描述】:

我有一个脚本,其中包含多种不同格式的日期。

我想将这些日期保存为时间戳,以便可以轻松地对其进行操作/排序。

当我尝试将 mm-dd-yyyy 类型的日期转换为时间戳时,它失败了。

当脚本运行时,它不知道将输入什么格式,因此无法指定。几乎所有其他格式的日期似乎都可以正常转换。

谁能建议如何解决这个问题,或者另一种方法可以将所有日期格式转换为可操作的可排序、一致的格式?

非常感谢

【问题讨论】:

  • 没有任何代码可显示.. 这是一个理论问题。为什么 mm-dd-yyyy 格式在 strtotime 中不起作用,有没有办法将任何格式的日期转换为单一可操作格式..?
  • 我认为问题在于也有dd-mm-yyyy 格式,两者无法区分。我认为这是重复的:
  • strtotime() 使用美式日期,这意味着如果找到像 2003 年 10 月 11 日这样的日期,它将认为是 10 月 11 日,而不是 11 月 10 日。跨度>
  • 感谢您的链接。在此基础上,有没有统一的方法将 mm-dd-yyyy 格式和 dd-mm-yyyy 格式的日期转换为单一可操作格式?

标签: php date formatting strtotime


【解决方案1】:

它会将带有 - 的字符串视为 dd-mm-yyyy 并将 / 视为 mm/dd/yyyy。

另见question 和comments on the documentation。

可能的解决方案/解决方法:

  • 在 php 5.3 上,使用 date_create_from_format
  • 在旧 php 而不是 Windows 上,使用 strptime
  • 如果两者都不能使用,请在必要时将- 替换为/,或者使用建议的正则表达式之一,您可以通过链接问题找到。

但请注意,有时您确实需要知道开始时的格式。计算机不是读心者。如果您不提供区分,他们不能也永远无法区分重叠范围(mm 和 dd

【讨论】:

  • 感谢您的链接。在此基础上,有没有统一的方法将 mm-dd-yyyy 格式和 dd-mm-yyyy 格式的日期转换为单一可操作格式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 2020-02-24
  • 2015-01-24
  • 1970-01-01
相关资源
最近更新 更多