【问题标题】:Converting date string to date将日期字符串转换为日期
【发布时间】:2011-11-28 05:04:46
【问题描述】:

我正在尝试使用strtotime 将格式为Jan 14th 2011 的日期字符串转换为格式2011-01-14,但它不起作用。

这种格式不适合strtotime,如果适合,我该如何转换。月份始终采用 3 个字母的格式,例如 Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec

【问题讨论】:

  • 我觉得不是!!您必须更改输入日期格式!
  • 我在这里测试过,效果很好。 date("Y-m-d",strtotime("Jan 14th 2011")) = "2011-01-14" 我没发现问题。
  • “它不工作”是什么意思?你有错误吗?还是转换不正确?

标签: php string date


【解决方案1】:

strtotime 或类似的解决方案需要针对每个用例进行一些更改。如果您想更进一步并有一个将原始字符串日期转换为时间格式的永久解决方案,您可以查看我所做的这个项目https://github.com/raimonbosch/date.extraction我正在使用常规语法来检测各种日期格式。

【讨论】:

  • 当您链接到您自己的项目时,您应该公开它是您的项目这一事实。来自常见问题解答:“但是,您必须在回答中披露您的隶属关系。”
【解决方案2】:

请参考这里:http://www.php.net/manual/en/datetime.formats.date.php

AFAIK,strtotime 将英文文本日期或时间解析为 Unix 时间戳。

【讨论】:

    【解决方案3】:
    $date_str = "Jan 14th 2011";
    $date = date_parse_from_format('M jS Y', $date_str);
    
    echo $date->format('Y-m-d');
    

    【讨论】:

    • 嘿,这就像你读懂了我的想法(除了我使用了DateTime::createFromFormat())。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2020-05-21
    • 2021-04-19
    相关资源
    最近更新 更多