PHP,MySQL日期计算
我正在尝试添加到目前为止的几个星期,这两个星期都将从数据库中获取,我成功地获取了所需的两个星期,但我不知道如何进行计算。到目前为止,我尝试了“strotime”,但它给了我一些奇怪的结果PHP,MySQL日期计算,php,mysql,date,Php,Mysql,Date,我正在尝试添加到目前为止的几个星期,这两个星期都将从数据库中获取,我成功地获取了所需的两个星期,但我不知道如何进行计算。到目前为止,我尝试了“strotime”,但它给了我一些奇怪的结果 <?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "database"; // C
<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT startdate // <- DATE WE WANT TO ADD WEEKS TO
FROM database
ORDER BY id
DESC limit 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$recoredDate = $row["startdate"];
$sql2 = "SELECT ready // <- INT NUMBER REPRESENT NUMBER OF WEEKS
FROM crop
ORDER BY id
DESC limit 1";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
// output data of each row
while($row = $result2->fetch_assoc()) {
$weeks = $row["ready"];
}
} else {
echo "No Result";
}
?>
<p>
<div align=center>
<?php echo "$recoredDate";?> - Date from DB
<p>
<?php echo "$weeks";?> Weeks to add
<p>
<?php echo "$recoredDate",strtotime ("+ $weeks week");?> Wierd result
</div>
</p>
<?php
}
}
?>
-来自DB的日期
要添加的周数
韦尔德结果
我该怎么做才对呢?理想的结果应该是打印$recoredate+$weeks。尝试
$str = strtotime("+".$weeks." weeks", strtotime($recoredDate));
echo date("Y-m-d", $str);
如果没有第二个参数(也是timestamp),strotime将返回当前时间戳,在您的示例中,添加了x周。如果要将周添加到日期,然后以某种格式使用日期,首先必须将周添加到日期的时间戳值,然后使用date()函数对其进行格式设置。可以先将周转换为天。考虑到为期7天的一周,你会有如下情况:
<?php
$date = "2019-05-10"; // Your date from database
$weeks = 3; // Your number of weeks from database
$days = $weeks * 7; // Transform weeks to days
$newDate = date('Y-m-d', strtotime($date. ' + '.$days.' days'));
echo $newDate;
?>
此外,我建议您避免在while循环中放置SQL查询。这是坏习惯
谢谢汤姆·利马,很好的例子!我已经使用了上面的代码,因为代码行数较少,但谢谢!我希望这对其他人也是一个很好的例子!