将字符串转换为时间而不使用php中的日期

时间:2016-10-18 15:46:05

标签: php

我正在将字符串“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行是第二个代码行的位置。

我如何使这项工作?

5 个答案:

答案 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存储到数据库中

由于