16. april 2004 - 07:29
#1
noget lignende;
<?php
function timeago($output, $fromdate, $todate) {
list ($funcyear, $funcmonth, $funcday, $funchour, $funcminute, $funcsecond) = explode ('-', $fromdate);
$olddate = mktime($funchour,$funcminute,$funcsecond,$funcmonth,$funcday,$funcyear);
if ($todate == 'now') {
$newdate = time();
} else {
unset($funcyear, $funcmonth, $funcday, $funchour, $funcminute, $funcsecond);
list ($funcyear, $funcmonth, $funcday, $funchour, $funcminute, $funcsecond) = explode ('-', $todate);
$newdate = mktime($funchour,$funcminute,$funcsecond,$funcmonth,$funcday,$funcyear);
}
$between = $newdate - $olddate;
if ($output == 1) {
$out = $between;
} elseif ($output == 2) {
$out = floor( $between / 60 );
} elseif ($output == 3) {
$out = floor( $between / ( 3600 ) );
} elseif ($output == 4) {
$out = floor( $between / ( 86400 ) );
} elseif ($output == 5) {
$out = floor( $between / ( 604800 ) );
} elseif ($output == 6) {
$yearsbetween = date('Y',$newdate) - date('Y',$olddate);
$monthsbetween = date('m',$newdate) - date('m',$olddate) + ( $yearsbetween * 12 );
if (date('dHis',$newdate) < date('dHis',$olddate)) {
$out = $monthsbetween - 1;
} else {
$out = $monthsbetween;
}
} elseif ($output == 7) {
$yearsbetween = date('Y',$newdate) - date('Y',$olddate);
if (date('mdHis',$newdate) < date('mdHis',$olddate)) {
$out = $yearsbetween - 1;
} else {
$out = $yearsbetween;
}
} elseif ($output == 8) {
$days = intval($between / 86400);
$tmp = $between - ($days * 86400);
$hours = intval($tmp / 3600);
$tmp = $tmp - ($hours * 3600);
$minutes = intval($tmp / 60);
$tmp = $tmp - ($minutes * 60);
$seconds = $tmp;
$out = $days;
if ($days == 1) { $out .= ' dag '; } else { $out .= ' dage '; }
$out .= $hours;
if ($hours == 1) { $out .= ' time '; } else { $out .= ' timer '; }
$out .= $minutes;
if ($minutes == 1) { $out .= ' minut og '; } else { $out .= ' minutter og '; }
$out .= $seconds;
if ($seconds == 1) { $out .= ' sekund'; } else { $out .= ' sekunder'; }
}
return $out;
}
# ==========================================
# Format ind:
# 1 : Se den ønskede output neden for
# 2 : Format: yyyy-mm-dd-tt-mm-ss
# eksempel:
# 2003-6-8-12-10-0
# vil betyde:
# den 8/6 2003 kl. 12:10:00
#
# Format ud:
# 1 : Sekunder imellem
# 2 : Minutter imellem
# 3 : Timer imellem
# 4 : Dage imellem
# 5 : Uger imellem
# 6 : Måneder imellem
# 7 : År imellem
# 8 : En komplet streng med forksel i
# alle førnævnte tids-intervaller
#
# ------------------------------------------
# Eksempel:
#
# -.-.-.-.-.-.-.-.-.-.-.-.-.-.-
# $timefrom = '2003-6-8-12-10-0';
# $timeto = 'now';
# echo timeago(4,$timefrom,$timeto);
# -.-.-.-.-.-.-.-.-.-.-.-.-.-.-
#
# Vil udskrive hvor langt tid der er gået
# siden Søndag den 8/6 2003 kl. 12:10:00
# Resultatet bliver selvfølgelig mere
# præcist alt efter hvor lille et tids-
# interval der vælges som output.
# I dette eksempel er der valgt at få det ud
# i dage. Så hvis det i dag er mandag den
# 9/6 2003 (efter klokken 12:10:00), giver
# funktionen 1 dag som resultat.
# ------------------------------------------
#
# Funktionen finder kun forskel på tider,
# TILBAGE i tiden og til nu. Hvis du ønsker
# at finde et tidsinterval til en foran-
# liggende til, skal der ændres en smule
# i funktionen.
#
# Funktionen kan også finde et tidsinterval
# mellem to foruddifinerede tidsangivelser.
# For at opnå denne funktion skal 'now' blot
# udskiftes med den ønskede tid.
# Sidste tidsangivelse SKAL være den seneste
# ==========================================
?>
16. april 2004 - 19:13
#6
<?
$date1 = strtotime("2004-04-16 07:11:42");
$date2 = strtotime("2004-04-16 07:20:28");
$datediff = $date2 - $date1; // Datediff er forskellen i sekunder
function sec2text($datediff) {
$units = array(
86400 => 'days',
3600 => 'hours',
60 => 'min',
1 => 'sec' );
$out = '';
foreach($units as $unit => $txt ) {
$t = floor($secs / $unit);
if( $t > 0 ) {
$secs -= ($t * $unit );
$out .= $t . ' ' . $txt . ' ';
}
}
return $out;
}
print sec2text(86400+3600+120+4);
?>
visser ikke noget
16. april 2004 - 20:14
#7
<?
$date1 = strtotime("2004-04-16 07:11:42");
$date2 = strtotime("2004-04-16 07:20:28");
$datediff = $date2 - $date1; // Datediff er forskellen i sekunder
print sec2text($datediff);
function sec2text($secs) {
$units = array(
86400 => 'days',
3600 => 'hours',
60 => 'min',
1 => 'sec' );
$out = '';
foreach($units as $unit => $txt ) {
$t = floor($secs / $unit);
if( $t > 0 ) {
$secs -= ($t * $unit );
$out .= $t . ' ' . $txt . ' ';
}
}
return $out;
}
?>