,所以我有一个日期格式像10年7月9日,我想知道如何从该日期前获得,如果我能有一个像条件PHP一周前从特定日期
if(is_date_with_1_week_of_above_date){
//do something
}
,所以我有一个日期格式像10年7月9日,我想知道如何从该日期前获得,如果我能有一个像条件PHP一周前从特定日期
if(is_date_with_1_week_of_above_date){
//do something
}
你的日期没有说明格式(是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-y不在时间上,如下所示:
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";
}
对于有关检查日期为当前时间戳
if(strtotime('-1 week')>=$dateToCheck) {
# $dateToCheck is within the last week
}
其他反应有很好的解决方案简单检查两个日期/时间是否在一周之内 - 没有意义的是我重复他们。
根据您的时区,有些日子可能只有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");
其2010年7月10日,我想找到07- 03-2010 – Trace 2010-07-16 01:33:06
那就是: $ oneWeekAgo = strftime(“%m-%d-%Y”,strtotime(“07-10-2010”) - 60 * 60 * 24 * 7); 基本上,你正在转换的东西秒,然后它是简单的减法/加法从那里。 60秒= 1分钟,60分钟= 1小时,24小时= 1天,7天= 1周。这适用于具有确定长度的事物,但对于具有变化的长度来说不太好。您如何定义1个“月”,因为一个月的长度可能会有所不同? – Klinky 2010-07-16 01:51:34