我有一个允许用户参加比赛的参赛表格。
我们每个星期一12.00午夜举行这个比赛。规则是如果用户已进入本周比赛,他们需要等待下周一再次进入比赛。
date_default_timezone_set('GMT');
$today = date("m.d.y H:i:s");
echo strtotime("last Monday");
这就是现在所做的我知道它没什么重要但我有两个问题:
为什么strtotime("last Monday");
会返回1398643200
?
如何进行计算? (条目都有DATETIME
字段。)
答案 0 :(得分:1)
1398643200是上周一的UNIX时间戳,这是strtotime("")
通常所做的事情。它返回一个时间戳。注意:您将获得每周上周一的其他时间戳。
您可以参考有关strtotime here的更多详情。
答案 1 :(得分:0)
您只需要为您的时间添加7天。请参阅下面的示例代码
$your_date = "4/28/2014";
$your_date = strtotime($your_date);
$your_date = strtotime("+7 day", $your_date);
echo date('M d, Y', $your_date);
在确认用户是否参加比赛后,您需要向用户提供下一个星期一的日期吗?尝试使用此
echo date("M d, Y", strtotime('next monday'));
答案 2 :(得分:0)
试试这个:
//get today's timestamp
$date_now = date_create("today");
//get past timestamp that you want to compare with
$log_date = date_create($VALUE FROM YOUR DB LAST LOG OR COMPETITION ENTRY);
//calculate date difference
$difference = date_diff($log_date,$date_now);
$int = intval($difference->format('%a'));
if($int > 6) {
//6 days as user can enter again on the 7th day
//let me in;
}else{
//do not let me in;
}
您可以在官方文档中提及date_create和date_diff以获取更多信息。