Php 在PST中显示unix时间会显示额外的一小时
因此,我有一个非常基本的表单设置,一旦提交,我就会运行这个查询Php 在PST中显示unix时间会显示额外的一小时,php,unix,pst,Php,Unix,Pst,因此,我有一个非常基本的表单设置,一旦提交,我就会运行这个查询 $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'); $t
$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 } ?>
但每当我尝试在insert查询中添加超过48小时(秒)的时间时,它总是额外添加一个小时,就像我添加72小时一样
March 7, 3: 30 am - March 10, 4:30 am
所以我不明白为什么它显示的是3月10日凌晨4:30,而不是3:30,因为多了一个小时。有人能告诉我如何修复它吗。这是由于夏令时。当日期不接近3月10日或11日时,你还面临问题吗 简单的解决方案是使用strotime:
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注入漏洞。您应该阅读以下内容:您知道添加172800并不十分准确。我建议改为使用+2天。夏令时之类的东西在添加秒数时会搞砸。您的问题中没有我们可以帮助您的代码。添加一个我们可以使用的示例,但我在mysql中将time和time_end设置为INT类型,如果我使用+2天,它将不起作用?这就是strotime的作用。那么我如何将这些数据类型从INT改为+2天才能起作用呢?是的,我尝试添加一个,直到3月14日,它仍然会额外增加一个小时
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);