0

I want the user to select a time of day which I then want to convert using the date() function so it can be inserted into a Mysql database datetime table field.

<select name="event-start-time-hours" class="event-time">
    <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" selected>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="event-start-time-mins" class="event-time">
    <option value="00" selected >00</option>
    <option value="05">05</option>
    <option value="10">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    <option value="25">25</option>
    <option value="30">30</option>
    <option value="35">35</option>
    <option value="40">40</option>
    <option value="45">45</option>
    <option value="50">50</option>
    <option value="55">55</option>
</select>

<select name="event-start-timeofday" class="event-time">
    <option value="" selected >AM</option>
    <option value="">PM</option>
</select>

I tried:

    $time = $_POST['event-start-time-mins'] .$_POST['event-start-time-hours'];
    var_dump($dob = date("H:i:s", $time));
print_r($_POST['event-start-time-hours']); 
print_r($_POST['event-start-time-mins']);

Which returns:

string(8) "01:03:22" 220

So how do I format this correctly? Many thanks.

3 Answers 3

1

Use mktime.

$time = mktime($_POST['event-start-time-hours'], $_POST['event-start-time-mins'], 0);
var_dump($dob = date("H:i:s", $time));

See Codepad.


Note : If your are using PM, just add 12 to hours.

Sign up to request clarification or add additional context in comments.

1 Comment

First parameter in mktime function is hour, and then minute.
1

used mktime(hour,minute,second,month,day,year,is_dst); function for create date take refence of mktime

Comments

1

First fix your HTML, so your select has value :

<select name="event-start-timeofday" class="event-time">
    <option value="AM" selected>AM</option>
    <option value="PM">PM</option>
</select>

Use DateTime.

$dt = new DateTime;
$offset = $_POST['event-start-timeofday'] == 'PM' ? 12 : 0;
$dt->setTime($_POST['event-start-time-hours'] + $offset, $_POST['event-start-time-mins']);
echo $dt->format('H:i:s');

If you need time validator, you can use this one.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.