将日期更改为明天的日期

时间:2011-12-05 20:37:11

标签: php sql

我希望将日期延长到第二天,如果日期小于今天的日期。

这就是我所拥有的。

$today = $date = date('y/d/m h:i:s a', time());

 $query_moline = "SELECT * FROM penny WHERE `active`='Y' ORDER BY `sdate` ASC LIMIT 13";
$moline = mysql_query($query_moline) or die(mysql_error()); 
$row_moline = mysql_fetch_assoc($moline);
$totalRows_moline = mysql_num_rows($moline);
?>
<table width="98%"><tr><td>Title</td><td><?php echo $today ?></td><td>Fee</td></tr>
<? if($totalRows_moline>0)
{ ?> 
<?php do { ?>
 <?php
$id=$row_moline['id'];
$title=$row_moline['title'];
$sdate=$row_moline['sdate'];
$fee=$row_moline['fee'];

if($sdate<$today){
$sdate=$today;

$strsql="UPDATE `penny` SET `sdate`=\"$sdate\" WHERE `id`=\"$id\"";
//echo $strsql."<BR>";
mysql_query($strsql,$connect) or die(mysql_error());

 }

在这里我被卡住了,如果$sdate<$today那么我需要$sdate明天约会,但与$sdate同时

例如,如果$ sdate = 2011/4/12 14:00:00 那么我需要新的日期是2011/5/12 14:00:00

2 个答案:

答案 0 :(得分:7)

你应该尝试(如果我理解你需要的话)

UPDATE penny SET sdate = DATE_ADD($sdate, INTERVAL 1 DAY)

答案 1 :(得分:0)

如果你需要通过php调整它,你可以使用strtotime将mysql datetime字段转换为int(虽然Marco的建议将是更少的工作,更清晰的代码和各种善良)

$row_time = strtotime( $row_moline['sdate'] );

并以秒为单位添加时间

$row_time += 86400

或再次使用strtotime

$row_time_tomorrow = strtotime( '+1 day', $row_time )

保存回数据库时,您可以使用FROM_UNIXTIME转换查询,例如

"UPDATE `whatever` set `date` = FROM_UNIXTIME( $row_time_tomorrow ) WHERE id = 9001"