PHP一周前从特定日期开始

时间:2010-07-16 01:23:14

标签: php

所以我有一个类似07-09-10的日期格式,我想知道如何从那个日期前来,如果我可以像

那样有条件
if(is_date_with_1_week_of_above_date){
//do something
}

3 个答案:

答案 0 :(得分:5)

用于检查与当前时间戳相关的日期

if( strtotime( '-1 week' )>=$dateToCheck ) {
 # $dateToCheck is within the last week
}

其他答案有很好的解决方案,可以简单地检查两个日期/时间是否在一周之内 - 没有必要重复它们。

答案 1 :(得分:1)

您的日期不清楚格式(MM-DD-YY,DD-MM-YY,YY-MM-DD等)?但是使用ISO 8601日期格式的一个例子是:

$oneWeekAgo = strftime("%Y-%m-%d", strtotime("2010-07-09") - 60*60*24*7);

要进行比较,您可以使用UNIX时间戳值

$date = "2010-07-09";
$compareDate = "2010-07-03";
$curTimestamp = strtotime($date);
$compareTimestamp = strtotime($compareDate);

if(abs($curTimestamp - $compareTimestamp) < 60*60*24*7)
{
    // within 1 week
}

修改

根据日期格式的评论,dd-mm-yy是日期的公认格式,但mm-dd-yy不是strtotime,如下所示:

http://www.php.net/manual/en/datetime.formats.date.php

要使其工作,您必须将破折号转换为斜杠。

此外,如果您正在查看日期是否特别提前一周,

$date = str_replace('-','/',"07-10-10");
$compareDate = str_replace('-','/',"07-03-10");
$curDate = strftime("%m/%d/%y", strtotime($date));
$compareDate = strftime("%m/%d/%y", strtotime($compareDate) + 60*60*24*7);

if($curDate == $compareDate)
{
    // is one week prior
    echo "OK";
}

答案 2 :(得分:1)

根据您所在的时区,有些日子可能只有23个小时,所以您不能将一天(60秒* 60分钟* 24小时)作为规则使用,并且计算具体日期。

指定日期:

$specific_date = date( "Y-m-d" ); // for today

$specific_date = date( "Y-m-d", $timestamp ); // where timestamp is: Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)

答案是

$date = strtotime( $specific_date . " -1 week" );