2011-12-19 20:58
浏览 16


I have date field in my MySQL DB and three fields (yyyy-mm-dd) in my PHP form. The user would set a complete date but can also set a "yyyy-mm" or "yyyy" date. In MySQL everything is going right, if the user only set the year, it store "yyyy-00-00". So as there is no 00 day in a month and no 00 month in a year, it acts like a "NULL" day or month.

But, when i want to display de date back to the user, using th date_format PHP function, if the date is "2012-00-00", it display "2011-12-30".

How can I easily (not using have_day and have_month columns in the db) handled this behaviour?

Thanks in advance!

图片转代码服务由CSDN问答提供 功能建议

我的MySQL数据库中有日期字段,PHP格式中有三个字段(yyyy-mm-dd)。 n用户可以设置完整的日期,但也可以设置“yyyy-mm”或“yyyy”日期。 在MySQL中,一切正常,如果用户只设置年份,则存储“yyyy-00-00”。 因此,一个月内没有00天,一年中没有00个月,它就像一个“NULL”日或月。

但是,当我想要显示日期时 对于用户,使用date_format PHP函数,如果日期为“2012-00-00”,则显示“2011-12-30”。

我如何轻松(不使用) db中的have_day和have_month列处理了这种行为?


  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongyi2159 2011-12-19 21:10

    Your case is unusual. You cannot use DATE class to format dates. Try treating date as literal string.

    if (strstr($date_returned,'-00-00'))
        echo  str_replace('-00-00','',$date_returned).'-00-00';
    解决 无用
    打赏 举报

相关推荐 更多相似问题