2012-03-31 92 views
0

我有一个时间选择器,其中的文本框(durationChosen)格式化的时间像'00小时00分00秒'..现在的问题是,我希望这个时间插入到数据库,但显然格式不正确。我希望文本框格式保持不变,但是如何以正确的格式正确地在数据库中插入时间?如何正确使用下面的日期时间功能

目前下面的代码导致页面不加载,因此它不会在数据库中插入任何内容。我有没有编码的日期时间功能如下错误:

下面是对于插入值的代码:

$time = DateTime::createFromFormat('h * i * s *', $_POST['durationChosen']); 
    $sql=" 
     INSERT INTO Session (SessionDuration) 
     VALUES ('" . $time->format('H:i:s') . "')"; 

mysql_query($sql); 

回答

2

也许你可以这样做: $time = date("H:i:s", strtotime($_POST["durationChosen"]));

+0

我试过,但不管时间是什么,它会显示在数据库'01:00:00'中。 – user1304197 2012-03-31 13:29:22

+0

什么是$ _POST [“持续时间”]例如? – Dion 2012-03-31 14:42:34

1

让日期选择器返回一个有效的ISO时间字符串像

$duration = "PT3H12M36S"; 

现在你可以使用DateInteval

$time = new DateTime; 
$time->add(new DateInterval($duration); 

补充说明:MySQL的接受一个I​​SO格式的字符串,每一个它的日期*的-typed列

VALUES (' . $time->format('c') . ') 

http://php.net/datetime

+0

同样的事情,页面不加载。我做了这个VALUES('。$ time-> format($ _ POST ['durationChosen'])'')。这是不正确的? – user1304197 2012-03-31 13:34:31

+0

我假设你没有看到我的第一句话。另请阅读:http://php.net/dateinterval.construct – KingCrunch 2012-03-31 13:53:33