我正在将字符串“11:00 PM”解析为数据库。我想将字符串转换为军事时间为23:00并写入数据库。
我尝试了以下内容:
$traveltime = "11:00 PM";
$contraveltime = date(strtotime("%H:%i",'$traveltime'));
我收到错误
A PHP Error was encountered
Severity: Warning
Message: date() expects parameter 2 to be long, string given
Filename: views/addtrip_individual.php
Line Number: 332
第332行是第二个代码行的位置。
我如何使这项工作?
答案 0 :(得分:3)
format参数属于date
函数,而不属于strtotime
。你需要消除$traveltime
周围的单引号,否则你只需要评估文字字符串'$ traveltime'。此外,格式字符串中不应使用%
个字符。这些用于printf
等,此处不需要。
$contraveltime = date("H:i", strtotime($traveltime));
答案 1 :(得分:2)
请先查看date
手册。我将使用的一种简单方法是:
echo date("G:i", strtotime("3:00 PM")); // 15:00
由于1500
是军事时间,而不是15:00
,您可能需要这样做:
echo date("Gi", strtotime("3:00 PM")); // 1500
答案 2 :(得分:1)
你可以做一些想法
// 24-hour time to 12-hour time
$time_in_12_hour_format = date("g:i a", strtotime("13:30"));
// 12-hour time to 24-hour time
$time_in_24_hour_format = date("H:i", strtotime("1:30 PM"));
参考链接:How do you convert between 12 hour time and 24 hour time in PHP?
答案 3 :(得分:0)
也许错误只是你调用函数的方式 试试这种方式
$traveltime = "11:00 PM";
$contraveltime = date('H:i', strtotime($traveltime));
答案 4 :(得分:0)
显示错误,因为日期函数第一个参数必须是日期格式
但你给了strtotime功能
正确的结果请按照以下代码
$traveltime = "11:00 PM";
$contraveltime = date('H:i',strtotime($traveltime));
echo $contraveltime;
和out put将如下面的代码
23:00
现在您将$ contraveltime存储到数据库中
由于