【发布时间】:2013-08-26 05:56:43
【问题描述】:
我正在编写一个脚本,该脚本将确定特定日历日期最近发生的时间。
这篇帖子Get the year of a specified month in previous 12 months? 是我当前测试版的基础。它是针对每月结果而不是特定日期编写的。
<?php
if (empty($_GET['m'])) {
$m = "October";
} else {
$m = htmlspecialchars($_GET['m']);
}
if (empty($_GET['d'])) {
$d = "1";
} else {
$d = htmlspecialchars($_GET['d']);
}
date_default_timezone_set('America/Los_Angeles');
$m = date('m', strtotime($m));
$c = (mktime(0,0,0,$m,$d) < time())
? mktime(0,0,0,$m,$d)
: mktime(0,0,0,$m,$d,date("Y") -1);
$from = date('F jS', $c) . " last occurred in " . date('Y', $c) . ".";
echo $from;
?>
默认值,10 月 1 日的结果是: “10 月 1 日最后一次发生在 2012 年。”
6 月 11 日,作为一个随机示例: “上次 6 月 11 日发生在 2013 年。”
所有日期结果均为 TRUE,除了 2 月 29 日的结果: “上一次 3 月 1 日发生在 2013 年。” 显然,这是一个错误的陈述,因为期望的结果是: “2 月 29 日最后一次发生在 2012 年。”
我有点卡住了,添加真正的闰年结果的最佳方法是什么?
【问题讨论】: