Php 获取当前MYSQL时间戳并从24小时中减去它

Php 获取当前MYSQL时间戳并从24小时中减去它,php,mysql,timestamp,Php,Mysql,Timestamp,有一件事一直困扰着我,那就是编码的时间。我很困惑如何去做这件事!简单地说,我有一个MySql时间戳,我想从24小时中减去它 基本上,我试图编写一些代码,只允许您每24小时完成一次操作,然后如果他们尝试再完成一次,它将告诉他们需要等待多长时间才能再次完成 这是我目前拥有的代码: $dailylogincheck = 2015-08-16 13:30:32 //MySQL Timestamp date_default_timezone_set("America/New_York"); $lastlo

有一件事一直困扰着我,那就是编码的时间。我很困惑如何去做这件事!简单地说,我有一个MySql时间戳,我想从24小时中减去它

基本上,我试图编写一些代码,只允许您每24小时完成一次操作,然后如果他们尝试再完成一次,它将告诉他们需要等待多长时间才能再次完成

这是我目前拥有的代码:

$dailylogincheck = 2015-08-16 13:30:32 //MySQL Timestamp
date_default_timezone_set("America/New_York");
$lastloginbonus = new DateTime($dailylogincheck);
$currenttime = $lastloginbonus->diff(new DateTime(date("Y-m-d H:i:s")));
我不必使用此代码(如果有更好的方法)。所以我只想从24小时中减去当前的时间戳,但我不知道如何在PHP中做到这一点:(请帮助

顺便说一下,我只想展示一句如下的句子:
您已经在过去的24小时内完成了此操作。请在X小时X分钟后回来再试。

希望此操作有效:-)


正如Dagon所说,在mysql中实现这一点是最好的方法。。。但是为了解决您的php问题,DateTime将接受一些简单的修饰符:

<?php

$lastBonus = new DateTime("-1 day"); // Last bonus was exactly 24 hours ago
$canNotGetNewBonus = new DateTime("-1 hour"); // Attempting another bonus 23 hours later
$canGetNewBonus = new DateTime("+1 hour"); // Attempting another bonus 25 hours later

var_dump($lastBonus->diff($canNotGetNewBonus)->days >= 1);
var_dump($lastBonus->diff($canGetNewBonus)->days >= 1);

你完全可以用mysql来做这件事
选择日期字段-间隔1天作为宾果
。@Dagon,你好:)我只是想给用户显示一条消息,告诉他们必须等待多长时间。啊,好的,我会在bitOk中发布解决方案,谢谢@Dagon!当然可以@DanielKrom.Perfect,谢谢!:)你好@Dagon,在做了一些测试之后,出现了一些问题:(例如,如果时间戳是3分钟前的,它将返回:
00小时,3分钟
。但是它应该返回
23小时,57分钟
@MichaelJones fixed,检查它谢谢!我将测试这一个是否完美!TY:dp可能会令人恼火地获得,X小时和Y分钟,超出MySQL日期比较php的DateTime类是ea西尔
<?php

$lastBonus = new DateTime("-1 day"); // Last bonus was exactly 24 hours ago
$canNotGetNewBonus = new DateTime("-1 hour"); // Attempting another bonus 23 hours later
$canGetNewBonus = new DateTime("+1 hour"); // Attempting another bonus 25 hours later

var_dump($lastBonus->diff($canNotGetNewBonus)->days >= 1);
var_dump($lastBonus->diff($canGetNewBonus)->days >= 1);