Php 从查询字符串获取值时出现问题
我下面的函数是从另一个正常工作的函数复制而来的。应从查询字符串中获取值并将其转换为日期:Php 从查询字符串获取值时出现问题,php,query-string,Php,Query String,我下面的函数是从另一个正常工作的函数复制而来的。应从查询字符串中获取值并将其转换为日期: function updateShift() { echo $name = $_GET['shift_name']; echo $start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));
function updateShift()
{
echo $name = $_GET['shift_name'];
echo $start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));
echo $stop_date = date('Y-m-d H:i:s', strtotime("{$_GET['stop_hours']}:{$_GET['stop_minutes']} {$_GET['stop_ampm']}"));
}
然而,它返回:
Shift Name
1969-12-31 17:00:00
1969-12-31 17:00:00
你知道为什么这在其他地方效果很好,但在这里却不行吗?查询字符串在那里,轮班名称正确无误。如果您这样做:
function updateShift()
{
echo $name = $_GET['shift_name'];
echo $start_date = date('Y-m-d H:i:s', strtotime($_GET['start_hours'].':'.$_GET['start_minutes'].' '.$_GET['start_ampm']));
echo $stop_date = date('Y-m-d H:i:s', strtotime($_GET['stop_hours'].':'.$_GET['stop_minutes'].' '.$_GET['stop_ampm']));
}
或
如果您这样做会怎么样:
function updateShift()
{
echo $name = $_GET['shift_name'];
echo $start_date = date('Y-m-d H:i:s', strtotime($_GET['start_hours'].':'.$_GET['start_minutes'].' '.$_GET['start_ampm']));
echo $stop_date = date('Y-m-d H:i:s', strtotime($_GET['stop_hours'].':'.$_GET['stop_minutes'].' '.$_GET['stop_ampm']));
}
或
收到的日期是Unix纪元的开始,因为日期函数调用的第二个参数为false(或0)。我刚刚使用您的代码运行了一些快速测试,我发现strotime返回的值为false
echo "{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}";
=> '4:0 PM'
您需要确保分钟字段中有2位数字,以允许strotime将其视为有效时间并正确解析。为此,您可以更新查询字符串,使用或sprintf来确保您拥有有效时间所需的2位数字。您收到的日期是Unix纪元的开始,因为日期函数调用的第二个参数为false(或0)。我刚刚使用您的代码运行了一些快速测试,我发现strotime返回的值为false
echo "{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}";
=> '4:0 PM'
您需要确保分钟字段中有2位数字,以允许strotime将其视为有效时间并正确解析。为此,您可以更新查询字符串,使用或sprintf确保您拥有有效时间所需的2位数字。您请求的URI是什么?action=update&shift=19&shift\u name=Fun&开始时间=4&start时间=0&start时间=6&stop时间=0&stop时间=0&stop时间=0&stop时间=0&start时间=0&start时间=0&start时间=0&start时间=0&start时间=0&start时间=6&stop时间=0&start时间=P是否确定执行了updateShift,而不是其他功能?我有时有这个问题。另外,如果删除“$name=”、“$start\u date=”、和“$stop\u date=”,该怎么办?您请求的URI是什么?action=update&shift=19&shift\u name=Fun&开始时间=4&start时间=0&start时间=6&stop时间=0&stop时间=0&stop时间=0&stop时间=0&start时间=0&start时间=0&start时间=0&start时间=0&start时间=0&start时间=6&stop时间=0&start时间=P是否确定执行了updateShift,而不是其他功能?我有时有这个问题。另外,如果删除“$name=”、“$start\u date=”和“$stop\u date=”,会怎么样?