3

我的表中有 2:00,我想从中减去 0:01。我在此之前的最近一篇文章中尝试过,但这没有帮助。

在 PHP 和 MySQL 中,我如何从 2 分钟中减去 1 秒?

if (isset($_GET['id']) && isset($_GET['time'])) {
    mysql_select_db("aleckaza_pennyauction", $connection);
    $query = "SELECT Current_Time FROM Live_Auctions WHERE ID='1'";
    $results = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($results)) {
        $newTime = $row['Current_Time'];
        $query = "INSERT INTO Live_Auctions(Current_Time) VALUES('".$newTime."')";
        $results = mysql_query($query) or die(mysql_error());
    }
}

谢谢。

4

4 回答 4

5

您可以使用 MySQL 直接在数据库上执行此操作SUBTIME()

// from the manual
mysql> SELECT SUBTIME('2007-12-31 23:59:59.999999','1 1:1:1.000002');
        -> '2007-12-30 22:58:58.999997'

或者您可以从 MySQL 获取时间并在 PHP 上使用DateTime::sub()

 // again from the manual
 <?php 
 $dateA = date_sub('2000-01-20', date_interval_create_from_date_string('1 second')); 
 ?> 
于 2012-10-04T04:00:49.230 回答
0

使用您提供的内容,以 php 风格检查此代码-

<?php
$t1= '0:2:00';
$t2= '0:0:01';
$a1 = explode(":",$t1);
$a2 = explode(":",$t2);
$time1 = (($a1[0]*60*60)+($a1[1]*60)+($a1[2]));
$time2 = (($a2[0]*60*60)+($a2[1]*60)+($a2[2]));
$diff = abs($time1-$time2);
$hours = floor($diff/(60*60));
$mins = floor(($diff-($hours*60*60))/(60));
$secs = floor(($diff-(($hours*60*60)+($mins*60))));
$result = $hours.":".$mins.":".$secs;
echo $result;

截屏

于 2012-10-04T04:05:49.070 回答
0

查看

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html用于 MySQL 函数,

http://www.php.net/manual/en/datetime.sub.php对于 PHP。

于 2012-10-04T04:01:50.017 回答
0

PHP:时间()

返回自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来以秒数测量的当前时间。

这个,-1,进入PHP date()应该可以解决问题。

于 2012-10-04T04:01:55.143 回答