因此,我有一个非常基本的表单设置,并且一旦提交该查询,我就会运行该查询
$insert = "INSERT INTO data(name, time, time_end)
VALUES ('".$name."', '".time()."', '".time()."' + 176400) ;";
mysqli_query($conn, $insert);
我在头文件中已经提到过,以便在PST中显示时间
date_default_timezone_set('America/Los_Angeles');
$time = time();
并要在PST中显示“数据”中的所有信息,请在比较页面中保存此代码
$session = "SELECT * from data";
$session_query = mysqli_query($conn, $session); ?>
<table>
<tr>
<th>Name</th>
<th>Started at</th>
<th>Ending at</th>
</tr>
<?php
while($data = mysqli_fetch_assoc($session_query)) { ?>
<tr>
<th><?php echo $data['name']; ?></th>
<th><?php
$start = $data['time'];
echo date("F j, Y, g:i a",$start); ?></th>
<th><?php
$end = $data['time_end'];
echo date("F j, Y, g:i a",$end); ?></th>
</tr>
<?php
}
?>
</table>
<?php } ?>
这似乎只能在我添加以下内容或48小时之前有效。 就像我在插入查询中添加+172800一样,它确实显示
March 7, 3:30 am - March 9, 3:30 am
但是,每当我尝试在插入查询中添加48小时以上(以秒为单位)时,它都会不断增加一个小时,就像我添加72小时一样
March 7, 3: 30 am - March 10, 4:30 am
所以我不明白为什么它在3月10日凌晨4:30而不是凌晨3:30(在一小时内)显示,有人可以告诉我如何解决它。
答案 0 :(得分:1)
简单的解决方案是使用strtotime:
date_default_timezone_set('America/Los_Angeles');
$insert = "INSERT INTO data(name, time, time_end) VALUES ('".$name."', '". strtotime('now')."', '". strtotime('+2 days')."') ;";
mysqli_query($conn, $insert);
您的代码中似乎存在一个sql注入漏洞。您应该阅读以下内容:How can I prevent SQL injection in PHP?
答案 1 :(得分:0)
这是由于夏令时。如果日期不在3月10日或3月11日附近,您还会遇到问题吗?