PHP - Unix Timestamp Pre-1970

From Global Programming Syntax

Jump to: navigation, search

What is a timestamp

A timestamp is how many seconds have passed by since [January 1st 1970 1:00:00AM]. However the php built in functions can find it difficult to cope with numbers before that date. In other words, php can't generate the negative numbers. This is why custom functions have been generated and work just as well as the general functions. So an example of a timestamp is [951024600] which when translated into a date is [February 20th 2000 5:30AM]. Or there is the timestamp for the end of the world [January 1st 2012 1:00:00AM] would be [1325379600]. So you get the point. This function will allow you to translate any timestamp into a year as long as the year is not before 0001 AD.

The code

Also this custom function has the same inputs as the date() function.

<?
function get_date($date,$timestamp=false) {
if ($timestamp==false) {
$timestamp=time();
} else {
$timestamp=round($timestamp);
}
if ($timestamp>=0) {
return date($date,$timestamp);
} else {
if ($timestamp<-62168515200) { die('This timestamp was during before the year zero there for will not be calculated'); }
//calculate negative time
$year=1970;
for ($i=-1;$i>$timestamp;) { //year loop
$year--;
for ($k=31; $k>0;$k--) { //month loop (December)
$month=12;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=30; $k>0;$k--) { //month loop (November)
$month=11;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (October)
$month=10;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=30; $k>0;$k--) { //month loop (September)
$month=9;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (August)
$month=8;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (July)
$month=7;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=30; $k>0;$k--) { //month loop (June)
$month=6;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (May)
$month=5;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=30; $k>0;$k--) { //month loop (April)
$month=4;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (March)
$month=3;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
if (round((1972-$year)/4)==((1972-$year)/4)) {
$j=29;
} else {
$j=28;
}
for ($k=$j; $k>0;$k--) { //month loop (February)
$month=2;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
for ($k=31; $k>0;$k--) { //month loop (January)
$month=1;
$day=$k;
if (($i-86400)>$timestamp) {
$i-=86400;
$l=24; $hour=24;
$m=59; $minute=59;
$n=59; $second=59;
} else {
for ($l=24; $l>0;$l--) {
$hour=$l;
for ($m=59; $m>-1;$m--) {
$minute=$m;
for ($n=59; $n>-1;$n--, $i--) {
$second=$n;
if ($i==$timestamp) { break;break;break;break;break; }
}
if ($i==$timestamp) { break;break;break;break; }
}
if ($i==$timestamp) { break;break;break; }
}
}
if ($i==$timestamp) { break;break; }
}
if ($i==$timestamp) { break; }
 
}
}
if ($hour>12) {
$ampm='PM';
$pmam='pm';
} else {
$ampm='AM';
$pmam='am';
}
if ($hour>12) {
$hr=$hour-12;
} else {
$hr=$hour;
}
if ($second<10) {
$second='0'.$second;
}
if ($minute<10) {
$minute='0'.$minute;
}
return str_replace(array('Y','n','j','H','h','i','s','a','A'),array($year,$month,$day,$hour,$hr,$minute,$second,$pmam,$ampm),$date);
}
 
 
//now to use the function
echo get_date('Y-n-j.....h:i:s A',-172800);
?>
Personal tools
languages
page stats
Toolbox