检查时间戳之间是否存在日期

时间:2012-02-08 15:21:57

标签: php unix-timestamp

我试图弄清楚两个unix时间戳之间是否存在日期,而不管年份如何。例如,假设我有12月12日的日期,但不包含年份。我如何检查12月12日是否存在时间戳1353369600和1358640000之间(第一个时间戳等于2012年11月20日;第二个时间等于2013年1月20日)。我正在使用PHP编写应用程序,但是如果您知道如何使用其他语言编写,请发表您的想法,以便我可以尝试通过逻辑。

提前致谢

更新:这是答案! 使用strtotime并将第二个参数设置为开始时间戳:)

2 个答案:

答案 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));