Jump to content

[SOLVED] need help with date formating


grimmier

Recommended Posts

I have a web form set up to allow entries into a MySQL database,  my problem is that i need to be able to convert the date from mm-dd-yyyy format to yyyy-mm-dd format before it gets entered into the database, or it won't go.

 

I have tried to manipulate the string before entering it, but i may have made some errors. any help is greatly appreciated.

 

PS. the user enters the date so i need a way to fail-safe against m-d-yyyy formating as well, due to human nature to omitt the leading Zero's

Link to comment
Share on other sites

is the user using an arbitrary date, or can you just capture the current date at input time?

 

You can use either pulldowns or a js applet to make them pick a real date instead of typing in a date... much nicer IMHO

 

I actually need 2 dates  one for date received, and one for date cleared.  the date cleared is auto populated with the current date, which is nice. Its the date received that i worry about.

Link to comment
Share on other sites

here is the post code i currently have.  it works but only if the date is in right format, otherwise the date fields are filled with 0's.

 

<?php
$con = mysql_connect("localhost","root","somepassword");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("2007_Inventory", $con);

$sql="INSERT INTO Inventory (`Maven ID`, `Owner ID`, `Date Received`, `Date Cleared`, `Status`, `Equipment Type`, `Make`, `Model`, `Serial Number`, `Processor`, `Speed`, `HD`, `RAM`, `Optical Drive`, `Tag #`, `Comments`, `Tested By`)
VALUES
('$_POST[mavenID]','$_POST[ownerID]','$_POST[date_rec]','$_POST[date_clear]','$_POST[status]','$_POST[type]','$_POST[make]','$_POST[model]','$_POST[serial]','$_POST[processor]','$_POST[speed]','$_POST[hd]','$_POST[ram]','$_POST[cd]','$_POST[tag]','$_POST[comments]','$_POST[tester]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>

 

if would be nice if i could change the format on behind the scenes before posting the data, and account for various formats.  or i might just do as was already recommended and just use a date picker, although this will slow down entry some.

 

PS. this is all set up on an intranet.

Link to comment
Share on other sites

your other option would be mktime:

 

$inputTime=explode($_POST['date_clear'], "-");

$time=date("Y-m-d", mktime($inputTime[2], $inputTime[0], $inputTime[1]));

 

this will always output the current date.  i need to be able to enter a date, thats not the current one

Link to comment
Share on other sites

I just tested this code, and it works:

 

Can't believe I posted explode with the delimiter as the second argument though... I must be losing my mind.

 

<?php
$string="1-5-07";
$inputTime=explode("-", $string);
$time=date("Y-m-d", mktime(0,0,0,$inputTime[0],$inputTime[1],$inputTime[2]));
echo $time;
?>

Link to comment
Share on other sites

I took it a step further, incase anyone else has this problem.

 

I put in an if statement to check for users using a slash instead of a dash.

 

$string=$_POST['date_rec'];
$dash  = '-';
$pos      = strripos($string, $dash);

if ($pos === false) {
$inputTime=explode("/", $string);
$time=date("Y-m-d", mktime(0,0,0,$inputTime[0],$inputTime[1],$inputTime[2]));
} else {
$inputTime=explode("-", $string);
$time=date("Y-m-d", mktime(0,0,0,$inputTime[0],$inputTime[1],$inputTime[2]));
}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.