带有闰年的数据格式


Data format with the 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');
}

例如,当我采取

31 二月 2016

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

2 三月 2016

.我想也许我应该比较我的日期,当用户点击 31 二月 2016 时,某个函数应该将此日期与最终日期进行比较,并返回该日期不存在的消息。当我单击

31.04.2016

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

1.05.2016.

有人知道如何解决这个问题吗?

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

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

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