【问题标题】:How to convert "Day, dd Month yyyy" to "yyyy-mm-dd" in php [duplicate]如何在php中将“Day,dd Month yyyy”转换为“yyyy-mm-dd” [重复]
【发布时间】:2014-08-15 12:06:57
【问题描述】:

如何转换:

Thursday, 14 August 2014

到这个在 php 中:

2014-08-14

我尝试了 strtotime()、trim() 等,但发现不是这样。你能指导我这个吗?

【问题讨论】:

  • echo date('yyyy-mm-dd',strtotime($olddate));
  • @Daan:您的解决方案不起作用!见亚历克斯的回答。输出将是“14141414-0808-1414”
  • @Daan,这很接近但不正确 - 尝试使用 date('Y-m-d', strtotime($olddate)); - 这当然是假设输入是有效日期。确保首先检查 - 如果日期无效,strtotime($olddate) 将返回 boolean false 并且您将结束 1969-12-31
  • @SamuelFullman 你说得对,我从 TS 中读到了标题并输入了它。

标签: php date


【解决方案1】:

使用 strtotime 对我来说效果很好。

$time = strtotime("Thursday, 14 August 2014");
echo date("Y-m-d",$time);

【讨论】:

  • 太完美了。那行得通!谢谢亚历克斯
  • 我在其他地方发表了评论,但请务必检查您的日期是否有效,即 if(strtotime($olddate)===false /*boolean if not valid*/){ //您无法进行转换! }
  • 如果它成功了,你应该标记它是正确的。
【解决方案2】:

如果您面临将人类可读日期转换为数值的问题,您必须重新考虑您的设计。您的代码应仅适用于 32 或 64 位纪元值(自 1970 年 1 月 1 日以来的秒数),然后仅在需要时将它们转换为适当的格式。

无论如何,只要这样做:

$time = strtotime(stripslashes("Thursday, 14 August 2014"));
echo date("Y-m-d",$time);

记得去掉斜杠和逗号,因为它们会混淆 strtotime

我会避免这样的解决方案,因为它不便携。你会发现这样的解决方案不起作用的 PHP 版本,此外,稍微不同的输入字符串可能会使 strtotime 失败,最重要的是 -> 语言环境很重要!!!! (即如果字符串是意大利语怎么办???)

只需使用 epoch 值并进行转换以将它们显示给最终用户! :-)

【讨论】:

    【解决方案3】:

    首先使用strtotime() 将字符串转换为时间,然后在php 中使用date() 函数来执行此操作。此函数格式化本地日期和时间,并返回格式化的日期字符串。

    您的代码应如下所示

    <?php
    $orignaltime = strtotime("Thursday, 14 August 2014");
    echo date("Y-m-d",$orignaltime);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2011-10-22
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多