PHP Change Numeric Date to Text Date

Hello,
I'm trying to convert the date "20090328" into "March 28th, 2009" with PHP and getting a little stuck. I need this asap and don't have much time. Can someone fix up this code for me? Thanks!
<?php
		$file = "aaaaaaaaaa20090329aaaa";
		$file_date = substr($file, 10, -4); //get the date from the file name
		$file_year = substr($file_date, 0, -4); //get the year from the file date
		$file_month = substr($file_date, 4, -2); //get the month from the file date
		$file_day = substr($file_date, 6); //get the day (numeric) of the file
		$constructed_date = "$file_month/$file_day/$file_year";
		print($constructed_date);
?>

Open in new window

LVL 1
damijimAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Ray PaseurConnect With a Mentor Commented:
Yes, - the strtotime() function can deal with YYYYMMDD format (which is ISO8601-format) so it's good to use that for all internal representations of the date.  

Best regards, ~Ray
0
 
Ray PaseurCommented:
use strtotime and date function to do this.
0
 
Ray PaseurCommented:

<?php // RAY_temp_strtotime.php
 
// TEST DATA
$file = "aaaaaaaaaa20090329aaaa";
 
// GET DATE THING OUT OF STRING BY ANY CONVENIENT MEANS
$date = str_replace('a', '', $file);
 
// GET TIMESTAMP
$ts = strtotime($date);
 
// GET PRINTABLE DATE
$date_printable = date('m/d/y', $ts);
print_r($date_printable);

Open in new window

0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
Ray PaseurCommented:
Oops, sorry - need better date formatting.  Try this instead...
<?php // RAY_temp_strtotime.php
 
// TEST DATA
$file = "aaaaaaaaaa20090329aaaa";
 
// GET DATE THING OUT OF STRING BY ANY CONVENIENT MEANS
$date = str_replace('a', '', $file);
 
// GET TIMESTAMP
$ts = strtotime($date);
 
// GET FORMATTED DATE
$date_formatted = date('F jS, Y', $ts);
print_r($date_formatted);

Open in new window

0
 
damijimAuthor Commented:
Well, I tried putting that code in to mine, and I end up with December 31, 1969 ...

the string passed was "aaaaaaaaaa20090329aaaa"
$file_date = substr($file, 10, -4); //get the date from the file name
$file_year = substr($file_date, 0, -4); //get the year from the file date
$file_month = substr($file_date, 4, -2); //get the month from the file date
$file_day = substr($file_date, 6); //get the day (numeric) of the file
$constructed_date = "$file_month$file_day$file_year";
 
// GET TIMESTAMP
$ts = strtotime($constructed_date);
// GET PRINTABLE DATE
$date_printable = date('F j, Y', $ts);
print_r($date_printable);

Open in new window

0
 
Ray PaseurCommented:
Print out the $constructed_date and post it here, please.

What version of PHP are you using?

Thanks, ~Ray
0
 
damijimAuthor Commented:
PHP v5.2.3

output of $construct_date = 03302009

agh, my mistake, I can easily reorder the $construct_date variables if it's easier..
0
 
damijimAuthor Commented:
Awesome, I switched it to:

$constructed_date = "$file_year$file_month$file_day";

and it's out putting what I want... Thanks!!
0
 
damijimAuthor Commented:
Thanks again!
0
 
Ray PaseurCommented:
Glad to help, and thanks for the points.  You  can test any date string on my web site here:

http://www.laprbass.com/RAY_strtotime.php

Best always, ~Ray
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.