user4691795
user4691795

Reputation:

How to format date in db with php

I want to change format of a date:

if (!empty($_POST['dob']) && !empty($_POST['mob']) && !empty($_POST['yob'])) {
    $yob = mysqli_real_escape_string($con, $_POST['yob']);
    $mob = mysqli_real_escape_string($con, $_POST['mob']);
    $dob = mysqli_real_escape_string($con, $_POST['dob']);
    $date = mysqli_real_escape_string($con, "$yob->$mob->$mob");
    $addtothedb = "INSERT INTO login (Dateofbirth) VALUES ('". $date . "')";          
    $result = mysqli_query($con, $addtothedb);
}

However the data I get from db is like yyyy-mm-dd whereas I would like to have it like dd-mm-yyyy.

Upvotes: 0

Views: 1161

Answers (5)

AleksAnderson IT
AleksAnderson IT

Reputation: 37

Use form like this

<form id="form1" name="form1" method="post" action="#">
              <label for="from">From Date</label>
              <input name="from" type="date" id="from" size="1" value="<?php echo $_POST['from']; ?>" />

              <label for="to">To Date</label>
              <input name="to" type="date" id="to" size="1" value="<?php echo $_POST['to']; ?>"/>

And make script for your preferred date format

<script>
    $(function() {
        var dates = $( "#from, #to" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 2,
            dateFormat: 'yy-mm-dd',
            onSelect: function( selectedDate ) {
                var option = this.id == "from" ? "minDate" : "maxDate",
                    instance = $( this ).data( "datepicker" ),
                    date = $.datepicker.parseDate(
                        instance.settings.dateFormat ||
                        $.datepicker._defaults.dateFormat,
                        selectedDate, instance.settings );
                dates.not( this ).datepicker( "option", option, date );
            }
        });
    });
    </script>

Then you can assign date to variable using $_POST Method and you got preferred date format

Upvotes: 0

eol
eol

Reputation: 24555

You could use the http://php.net/manual/en/function.date.php function to get the desired format.

$result = date('d-m-Y', strtotime($birthdate));

Upvotes: 1

Thanasis
Thanasis

Reputation: 439

I have 2 functions here.

The first function ( mydate($date) ) returns a date from mySQL Date format to a user readable format.

The second function (sqldate($date)) returns a date from user format to mySQL format !!!

  function mydate($date) { 
        if ($date<>NULL) {  return date ('d/m/Y', strtotime($date)); } else { return ""; } 
        }

function sqldate($date)
        {
        if (trim($date) == "") {return "";  } 
        else {
         $date = str_replace('/', '-', $date);
        return date ('Y-m-d', strtotime(str_replace('/', '-', $date)));
        }
        }

Upvotes: 0

N.DeNisse
N.DeNisse

Reputation: 149

MySQL saves any Date type data in yyyy-mm-dd format. If you want it to be dd-mm-yyyy do NOT use Date data type, instead use VARCHAR(10) to save it.

Hope it helps!

Upvotes: 0

hamed
hamed

Reputation: 8033

You can do this:

$date = new DateTime($gd.'-'.$gm.'-'.$gy);
$formattedDate = $date->format('dd-mm-yyyy');
$addtothedb="INSERT INTO login (Dateofbirth) VALUES ('". $formattedDate . "')";

Upvotes: 0

Related Questions