簡體   English   中英

在數據庫中轉換/保存用戶提交的“時間”

[英]Convert/Save User Submitted “Time” in database

我有一個表格,其中用戶 select 一次來自表格

    <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)存儲在數據庫中,日期為今天的日期。

我在想數據 function 將如何轉換它,但我似乎無法弄清楚。

很容易。 假設用戶在下午 1:09 輸入,則:

$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

還有其他方法可以解決這個問題,但這可能更容易理解。

strtotime()將字符串輸入轉換為時間戳。 然后您可以使用此時間戳和date() function 以您喜歡的任何方式格式化日期。

您應該向它傳遞一個格式類似於“YYYY-MM-DD HH:MM:SS”的字符串,它應該可以毫無問題地為您解析它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM