Date format

In working with date fields in Php/MySql - the format for date storage is YYYY-MM-DD. Are there any functions to convert this format to MM-DD-YYYY when displaying the date in an html form, but convert it back to YYYY-MM-DD before writing to the database.
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

freshmeatConnect With a Mentor Commented:
i pasted some reference from a manual of php3, hope it is useful to u

date -- format a local time/date

string date(string format, int [timestamp] );

Returns a string formatted according to the given format string using the given timestamp or the current local time if no timestamp is given.

The following characters are recognized in the format string:

a - "am" or "pm"

A - "AM" or "PM"

d - day of the month, 2 digits with leading zeros; i.e. "01" to "31"

D - day of the week, textual, 3 letters; i.e. "Fri"

F - month, textual, long; i.e. "January"

h - hour, 12-hour format; i.e. "01" to "12"

H - hour, 24-hour format; i.e. "00" to "23"

g - hour, 12-hour format without leading zeros; i.e. "1" to "12"

G - hour, 24-hour format without leading zeros; i.e. "0" to "23"

i - minutes; i.e. "00" to "59"

j - day of the month without leading zeros; i.e. "1" to "31"

l (lowercase 'L') - day of the week, textual, long; i.e. "Friday"

L - boolean for whether it is a leap year; i.e. "0" or "1"

m - month; i.e. "01" to "12"

n - month without leading zeros; i.e. "1" to "12"

M - month, textual, 3 letters; i.e. "Jan"

s - seconds; i.e. "00" to "59"

S - English ordinal suffix, textual, 2 characters; i.e. "th", "nd"

t - number of days in the given month; i.e. "28" to "31"

U - seconds since the epoch

w - day of the week, numeric, i.e. "0" (Sunday) to "6" (Saturday)

Y - year, 4 digits; i.e. "1999"

y - year, 2 digits; i.e. "99"

z - day of the year; i.e. "0" to "365"

Z - timezone offset in seconds (i.e. "-43200" to "43200")

Unrecognized characters in the format string will be printed as-is. The "Z" format will always return "0" when using gmdate()(). Example 1. date() example

print (date("l dS of F Y h:i:s A"));
print ("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));

It is possible to use date() and mktime() together to find dates in the future or the past. Example 2. date() and mktime() example

$tomorrow  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"),  date("Y"));
$nextyear  = mktime(0,0,0,date("m"),  date("d",   date("Y")+1);


Try this.

$now = Date('Y-m-d');

And this

$then = Date('m-d-Y',$now);

to switch it back.

j_kAuthor Commented:
Date('m-d-Y',$now); always returns 12-31-1969 regardless of $now's value.  I hope it is a simple fix!

Or as freshmeat wants to say...RTFM! ;)

A simple answer to this Q is that you only need to output the date on the HTML site. So only this is used :

echo date( "M-d-Y", mktime(0,0,0,1,1,1999) );

output : Jan-01-1999

Here's a nasty fix :

      //$date is a date like '1999-12-31'
       $year = substr($date,0,4);
              $month = substr($date,5,2);
              $day  = substr($date,8,2);
      $newdate = $day.'-'.$month.'-'.$year;

So, $date is the start date where each month and day must be two characters, eg 02,  11 etc. and puts the formatted date in $newdate.
All Courses

From novice to tech pro — start learning today.