所以我有一个类似07-09-10的日期格式,我想知道如何从那个日期前来,如果我可以像
那样有条件if(is_date_with_1_week_of_above_date){
//do something
}
答案 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" );