我试图弄清楚两个unix时间戳之间是否存在日期,而不管年份如何。例如,假设我有12月12日的日期,但不包含年份。我如何检查12月12日是否存在时间戳1353369600和1358640000之间(第一个时间戳等于2012年11月20日;第二个时间等于2013年1月20日)。我正在使用PHP编写应用程序,但是如果您知道如何使用其他语言编写,请发表您的想法,以便我可以尝试通过逻辑。
提前致谢
更新:这是答案! 使用strtotime并将第二个参数设置为开始时间戳:)
答案 0 :(得分:3)
只需使用strtotime
将字符串转换为时间戳,然后进行比较。如果字符串不包含年份,则年份默认值为当前年份。
$ts = strtotime("December 12th");
if ($ts >= 1353369600 && $ts <= 1358640000 ) {//....}
答案 1 :(得分:0)
您可以在时间戳之间每年查看一次,看看它们之间是否有所需的日期。
function inBetween($day, $month, $from, $to)
{
$from_year = date('Y', $from);
$to_year = date('Y', $to);
if($from_year == $to_year)
{
$time = mktime(12,0,0,$month,$day, $from_year);
return $time > $from && $time < $to;
}
elseif($from_year < $to_year)
{
for($i=$from_year;$i<=$to_year;$i++)
{
$time = mktime(12,0,0,$month,$day, $i);
if($time > $from && $time < $to) return TRUE;
}
return FALSE;
}
}
var_dump(inBetween(12, 12, 1353369600, 1358640000));