MySQL datetime和Current Date Time函数

时间:2010-11-19 04:10:01

标签: php mysql

我是php的date()和strtotime的新手,并且一直试图在没有真正解决方案的情况下找到解决方案(我已经接近,但无济于事)

我所拥有的是具有“已提交”列的典型数据库行,该列通过提交的= NOW()(以日期时间格式)输入。我正在尝试获取当前日期时间,并在“x Hours和x minutes”中找到两个值之间的差异。为了使问题更有趣,我的网络服务器在时区方面落后于我一小时。我试过了“date_default_timezone_set('EST');”它确实有助于执行直接的date()函数,但显然无法帮助我处理已插入的日期时间。

$lastEntryDate = date('l, F dS Y', strtotime($entryDate));
$lastEntryTime = date('g:ia', strtotime($entryDate.'+1 hour'));

$currDate = date('l, F dS Y');
$currTime = date('g:ia');

所以,尝试使用$ lastEntryTime - $ currTime,但这显然会因为一天中的时间而变得混乱(因为它是24小时格式,我相信)。

我在谷歌上搜索并在论坛上发现了一些帖子,表示使用3600(一小时内的秒数),我仍然试图绕过这个。

有什么基本的东西我不见了吗?或者这是否相当复杂,我认为是这样的?

2 个答案:

答案 0 :(得分:1)

$now = time();
$entrytime = strtotime($entryDate) + (60 * 60) //60 seconds times 60 minutes = 1 hour

$difference = $now - $entrytime;
$hours = floor($difference / (60 * 60));
$minutes = $difference - ($hours * 60 * 60);

答案 1 :(得分:0)

一个可能对你有帮助的解决方案不是使用现在的MySQL函数,而是为什么不使用php类型提交你提交的字段,然后使用php time()函数在其中存储unix时间戳,然后再将其插入到数据库只需在1秒内向时间戳添加1小时。然后,当您从表中检索数据时,您应该能够使用时间戳和php日期和时间函数来创建所需的时间戳。这是php time()函数的一个链接,它可能会有所帮助: http://php.net/manual/en/function.time.php