#19240 - 09/04/05 09:42 PM
PHP - Replacing output format of date...
|
Joined: Feb 2002
Posts: 7,202
Gremelin
Community Owner
|
Community Owner

Joined: Feb 2002
Posts: 7,202
Likes: 11
Portland, OR; USA
|
Ok, I'm trying to code up an RSS2.0 output of the news that's displayed on the main page... I've got about 99% of everything done however I've run into a snag... The UBB stores dates (presantly) as (08-31-2005 05:54 AM): However RSS2.0 specs declare that the date MUST be (Sun, 04 Sep 2005 07:42:38 PDT): Date("D, d M Y H:i:s T"); Now, to tinker with the code to change how the date is displayed will effectively screw things up all over the site, so my PHP file will have to change the date format based on the date in the string "$postdate"... Any ideas?
|
|
|
#19243 - 09/08/05 12:15 AM
Re: PHP - Replacing output format of date...
|
Joined: Dec 2002
Posts: 3,255
§intå×
|

Joined: Dec 2002
Posts: 3,255
Likes: 3
Maryland
|
There should still be some perl code that create the flat file. But if not. Maybe mktime() Thing is you would have to split(); it several ways to break out the variables from the first timestamp http://us2.php.net/manual/en/function.split.php $this_date = "$postdate";// date will be in this format m-d-Y h:i A $split1 = split("-:",$postdate);
/*this leaves us with this array
array(
[0] => "M"
[1] => "d"
[2] => "Y "
[3] => "h"
[4] => "i A"
);
*/ so we could then trim $split1[2] and split $split1[4]. $split2 = trim($split[2]);
$split3 = split(" ", $split[4]);
//now this is a pain in the [censored]...
/*
$split[0] is month
$split[1] is day
$split2 is year
$split1[3] is hour
$split3[0] is minutes
$split3[1] Ante meridiem and Post meridiem
*/ Now where you get s and T Seconds, with leading zeros and Timezone setting of the machine.... I guess you could default seconds to 00, and timezone is eazy enough. Now then, mktime()... I hate time by the way... Real quick summary of mktime mktime(hour, minute, second, month, day, year); Now what we can do is this $My_new_date = date("D, d M Y H:i:s T", mktime($split1[3], $split3[0], 00, $split[0], $split[1], $split2)); That should work, I am not 100% on syntax I am sure, you might have to play with quotes around the array values.
|
|
|
#19244 - 09/09/05 01:10 AM
Re: PHP - Replacing output format of date...
|
Joined: Dec 2002
Posts: 3,255
§intå×
|

Joined: Dec 2002
Posts: 3,255
Likes: 3
Maryland
|
|
|
|
#19250 - 09/16/05 09:14 PM
Re: PHP - Replacing output format of date...
|
Joined: Sep 2005
Posts: 6
Ron M
Junior Member
|
Junior Member
Joined: Sep 2005
Posts: 6
Des Moines, IA
|
Hey Gizzy, I might be able to scrounge some debugging time up this weekend. Judging by the input time, I'm guessing the logic is trying to do epoch -7 hours. If you are using Ian's code $date = date( "D, d M Y H:i:s T" , strtotime( convert_date( $day . ' ' . $hour ) )); you are only sending the day and hour to the script be processed. The Date is nowhere to be found in the convert_date.
STOP 0x9452356 - SIGNATURE_NOT_AVAILABLE
|
|
|
#19252 - 09/16/05 11:05 PM
Re: PHP - Replacing output format of date...
|
Joined: Sep 2005
Posts: 6
Ron M
Junior Member
|
Junior Member
Joined: Sep 2005
Posts: 6
Des Moines, IA
|
Here's a snippet of code that I tried and it is practically working: <?
$postdate = "08-31-2005";
$posttime = "05:54 AM";
$pd_array = explode("-",$postdate);
$pt_array = split('[ :]',$posttime);
if ($pt_array[2] == "PM") {
$pt_array[0] += 12;
}
$display2 = date("D, d M Y H:i:s T",mktime($pt_array[0], $pt_array[1], 0, $pd_array[0], $pd_array[1], $pd_array[2]));
echo $display2;
?>
STOP 0x9452356 - SIGNATURE_NOT_AVAILABLE
|
|
|
#19253 - 09/17/05 03:44 AM
Re: PHP - Replacing output format of date...
|
Joined: Feb 2002
Posts: 7,202
Gremelin
Community Owner
|
Community Owner

Joined: Feb 2002
Posts: 7,202
Likes: 11
Portland, OR; USA
|
Hey ron, quick question; what time is it when it's 12:30pm  ... What I've got so far is here but we're still getting the date read wierd (time anyway); the original forum is here I can get the blasted date to work, but the damned time...
|
|
|
#19254 - 09/19/05 08:30 PM
Re: PHP - Replacing output format of date...
|
Joined: Sep 2005
Posts: 6
Ron M
Junior Member
|
Junior Member
Joined: Sep 2005
Posts: 6
Des Moines, IA
|
Oooops.... <?
$postdate = "08-31-2005";
$posttime = "05:54 AM";
$pd_array = explode("-",$postdate);
$pt_array = split('[ :]',$posttime);
if ($pt_array[2] == "PM" && $pt_array[2] != 12) {
$pt_array[0] += 12;
}
$display2 = date("D, d M Y H:i:s T",mktime($pt_array[0], $pt_array[1], 0, $pd_array[0], $pd_array[1], $pd_array[2]));
echo $display2;
?> If you pass $posttime and $postdate to my code, it *should* work correctly. The time zone might be off if you have anything in $FudgedOffset.
STOP 0x9452356 - SIGNATURE_NOT_AVAILABLE
|
|
|
|
Forums41
Topics33,701
Posts68,795
Average Daily Posts0
|
Members2,173
Most Online1,567 Apr 25th, 2010
|
|
|
Okay WTF?
by HenryMiring on 09/27/17 08:45 AM
|
|
|
|
|
|
|
|