0

我想像在 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 日时,某些功能应该将此日期与最终日期进行比较,并返回该日期不存在的消息。单击时查看下一个示例的日历

31.04.2016

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

2016 年 5 月 1 日。

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

4

1 回答 1

1

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

要验证日期在 PHP 端是否有效,请使用此答案中演示的技术。

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

于 2016-01-25T06:05:22.323 回答