转换/保存用户在数据库中提交“时间”

时间:2011-06-12 04:46:27

标签: php mysql

我有一个表单,用户可以从表单中选择时间

    <select name='hour'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
    <option value='10'>10</option>
    <option value='11'>11</option>
    <option value='12'>12</option>
</select>
:
<select name='min'>
    <option value='00'>00</option>
    <option value='15'>15</option>
    <option value='30'>30</option>
    <option value='45'>45</option>

</select>
<select name='ampm'>
    <option value='AM'>AM</option>
    <option value='PM'>PM</option>
</select>

我将此信息发布到处理页面,我需要以DateTime格式保存用户在数据库中提交的时间。数据需要以日期时间格式(2011-06-11 23:11:07)存储在数据库中,日期为今天的日期。

我认为数据功能将如何能够转换它,但我似乎无法弄明白。

2 个答案:

答案 0 :(得分:2)

够容易。假设用户输入1:09 pm,那么:

$hour = intval($_REQUEST['hour']); // 1
$min = intval($_REQUEST['minute']); // 9
if (($_REQUEST['ampm'] == 'PM') && ($hour <> 12)) { 
   $hour += 12; // adjust for 24 clock, so $hour becomes 13
}

$timestring = sprintf('%02d:%02d:00', $hour, $min); // 13:09:00
$datestring = date('Y-m-d'); // 2011-06-12

$timestamp = $datestring . ' ' . $timestring; // 2011-06-12 13:09:00

还有其他方法可以解决这个问题,但这可能更容易理解。

答案 1 :(得分:0)

strtotime()会将字符串输入转换为时间戳。然后,您可以使用此时间戳和date()函数以您喜欢的任何方式格式化日期。

你应该传递一个格式类似于“YYYY-MM-DD HH:MM:SS”的字符串,它应该为你解析没有问题。