【问题标题】:Convert date to month name & year将日期转换为月份名称和年份
【发布时间】:2017-07-17 07:34:01
【问题描述】:

我正在尝试将日期转换为月份名称和年份。

$date = '2017-07-00';
$date = date('m/y', strtotime($date));
echo DATE_FORMAT($date, '%M %Y');

我期待像这样的输出

July, 2017

这是我遇到的错误

Warning: date_format() expects parameter 1 to be DateTimeInterface, string given

【问题讨论】:

  • 您似乎混淆了 MySQL DATE_FORMAT 和 PHP date_format。阅读文档。
  • 7 月 0 日是什么意思?
  • 我通过连接添加了“00”,因为我只需要使用输入类型 =“月”& 以我连接的日期格式存储月份和年份。 @BartFriederichs

标签: php mysql


【解决方案1】:

不需要 DATE_FORMAT() 函数。

Example-1:如果在当天使用 00。然后,输出将是 2017 年 6 月

<?php
$date = '2017-07-00';
echo date('F, Y', strtotime($date)); //June, 2017
?>

Example-2:如果是 01 或一天中使用的有效日期。然后,输出将是 2017 年 7 月

<?php
$date = '2017-07-01';
echo date('F, Y', strtotime($date)); //July, 2017
?>

【讨论】:

    【解决方案2】:

    您没有使用正确的参数,请使用 F 表示蛾,使用 Y 表示年份

    完整代码:

    $date = '2017-07-00';
    $date = date('F, Y ', strtotime($date));
    echo $date;
    

    【讨论】:

    • 是的,它显示的是“2017 年 6 月”而不是“2017 年 7 月”。但一年中的第 7 个月是 7 月。这里出了什么问题?
    • @NanaPartykar 试试date("F, Y", strtotime($date . " next month"));
    • @NitishKumarDiwakar 当天是 0。每个月的第一天是 1,而不是 0。
    • 感谢您提供此代码 sn-p,它可能会提供一些即时帮助。一个正确的解释would greatly improve 其教育价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有类似但不相同的问题的读者更有用。请edit您的答案添加解释,并说明适用的限制和假设。
    【解决方案3】:

    试试这个。

    $date = '2017-07-01';
    $date = date('F, Y', strtotime($date));
    
    echo $date;
    

    【讨论】:

    • 我的数据库中有“2017-07-00”。为什么我要把它改成“2017-07-01”?
    • @NitishKumarDiwakar 我严重怀疑您的数据库中有2017-07-00,如果数据库架构正确并且您使用的是日期列。
    【解决方案4】:

    你可以用这个

    echo date('F,Y',strtotime($date));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 2021-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多