Reputation:
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
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
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
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
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
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