PHP-工作日期

PHP-工作日期,php,Php,我要做的是检查一个表,看看是否存在日期介于两个日期之间的记录。SQL查询当前正在运行 $q = $this->pdo->prepare("SELECT * FROM member_games WHERE member = :userID AND game = :game AND (played BETWEEN :start AND :end)"); 我所要做的是确定开始/结束日期 我想检查周六和周五之间是否有记录(其他日期视情况而定) 如果日期不是星期六,这似乎有效,但如果日期当前

我要做的是检查一个表,看看是否存在日期介于两个日期之间的记录。SQL查询当前正在运行

$q = $this->pdo->prepare("SELECT * FROM member_games WHERE member = :userID AND game = :game AND (played BETWEEN :start AND :end)");
我所要做的是确定开始/结束日期

我想检查周六和周五之间是否有记录(其他日期视情况而定)

如果日期不是星期六,这似乎有效,但如果日期当前是星期六,则不正确。然后我想检查一下当前的星期六,而不是最后一个星期六

这就是我计算日期的方法

$sat = date('Y-m-d', strtotime("last Saturday"));
$fri = date('Y-m-d', strtotime("friday"));
我知道我可以做一个if语句来检查周六是否像下面这样,并将strottime改为周六,但我想知道是否有更好的方法

$today = date('N');
if($today == 6)
  $sat = date('Y-m-d', strtotime("Saturday"));

您应该尝试碳库功能
diffForHumans()


您可以在此处找到更多信息:

如果今天是星期六,您真的想要今天吗?如果你使用
$sat
作为你的
:start
日期和
$fri
作为你的
:end
日期,那么使用今天作为
$sat
将意味着没有任何游戏符合你的查询条件。我想做的是看看他们是否在周六和周五之间玩过游戏,那么他们是否在周六(今天)玩过游戏然后它会返回一行,如果他们没有,那么它不会返回任何东西。我知道这就是你想要做的。但是如果
$fri
是昨天,而
$sat
是今天,那么您将检查日期是否在今天和昨天之间,这将返回
0
行。较早的日期必须是介于之间的条款中的第一个日期。$fri给我的是预期日期-2018-06-22,所以这不是问题。如果我打印查询的值,它会给我(在'2018-06-09'和'2018-06-22'之间播放),但开始应该是2018-06-16$sat=(6==日期('N'))?日期(“Y-m-d”):日期(“Y-m-d”,标准时间(“上周六”);