闰年

时间:2016-01-24 12:17:04

标签: php yii2 getdate leap-year

我想在Facebook上进行注册。有3个下拉列表,我选择年,日和月。我完成了3个函数返回我(从1915年至今的31天,12个月和几年)。现在我解析字符串到目前为止有一个问题。这是我的代码:

public function getDate() {
    $month = $this->Month;
    return $this->Year . '-' . $month . '-' . $this->Day;
}

public function getDbFormatedDate() {
    $dateDeadline = date_create($this->getDate());
    return date_format($dateDeadline, 'Y-m-d');
}

例如我拿

  

2016年2月31日

。在我的数据库中,此代码保存日期

  

2016年3月2日

。我想也许我应该比较我的日期,当用户点击2016年2月31日时,某些功能应该将此日期与最终日期进行比较,并返回此日期不存在的消息。点击

,查看下一个示例的日历
  

2016年4月31日

这个日期不存在,我的代码保存在基础

  

2016年5月1日。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先,它与闰年没有任何关系 - 除了2月可能有28天或29天,具体取决于选择的年份。但是其他月份也有不同的天数,因此您需要始终进行验证 - 而不仅仅是在闰年期间。

要验证日期在PHP方面是否有效,请使用this answer中演示的技术。

此外,您可能需要考虑根据所选年份和月份自动调整可用天数,从而创建更友好的用户体验。执行此操作时,请按年 - 月 - 日的顺序放置控件以获得最佳用户体验。