smart date functie

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Hey,

Ik ben op zoek naar een degelijke smart date functie. Heb ff zitten googlen maar vind nix degelijks, en degene die ik zelf heb geschreven is niet veel soeps :)

Kan iemand mij iets aanraden?

Alvast bedankt :D
 
wat bedoel je precies met smart date? :p

/wat is jouw code?

:thumb:

Mod-edit: Grijs is niet zo'n goede kleur voor tekst met de huidige achtergrond :)
[edit]kthx[/edit]
 
Laatst bewerkt:
Met smart date bedoel ik 'vandaag' en 'gisteren' enzo ipv een datum notatie.

Dit is mijn code, maar die gaat niet werken bij nieuwjaar lijkt me, en ik niet echt pro opgebouwd :(

Code:
function formatDate($timeStamp, $timeFormat = ", g:i a", $dateFormat = "j M Y")
   { // By De Dauw Jeroen - August 2008 - jeroen_dedauw@yahoo.com
     // http://code.tiko-world.com/forum/viewtopic.php?t=31
   if ($timeStamp == "")
      {
      return "Never";
      }
   else   
      {
      switch (date("Y",$timeStamp) * 365 + date("z",$timeStamp))
         {
         case (date("Y") * 365 + date("z")): return "Today".date($timeFormat, $timeStamp); break;
         case (date("Y") * 365 + date("z")-1): return "Yesterday".date($timeFormat, $timeStamp); break;
         default: return date($dateFormat.$timeFormat, $timeStamp); break;
         }
      }
   }
 
John Resig heeft een mooie javascript functie daarvoor:
http://ejohn.org/blog/javascript-pretty-date/ (directe js code hier: http://ejohn.org/files/pretty.js)

die zou je kunnen gebruiken/omscripten/als inspiratie kunnen gebruiken ;)
Wat het basicly doet is de tijd pakken (in sec, gebruik Time()), de tijd van het plaatsen pakken, het verschil berekenen, en dan een switch.


:thumb:
[edit]
ik heb er zin in, ga even ermee aan de gang <3 [/edit]
 
Laatst bewerkt:
zoiets?

Wat je nog moet doen is iets verzinnen op dagen, bv. als iemand iets om 23:30 post zal het pas op 23:30 de volgende dag als 'yesterday' gezien worden... tenzij dit niet een probleem is natuurlijk.

PHP:
<?php

function AwesomeTime(oldSeconds)
{
  //functie eet het aantal seconde dat is voorbij gegaan sinds 1 Januari 1970 om 00:00:00 GMT
  //(zie ook php Time() Functie: http://nl3.php.net/time )
  //produceert 'een mooie notatie' of, als het lang geleden is, de gewone datum.

   $cur = Time();
   $old = oldSeconds;

   $res = $cur - $old;
   $out = "";

   $oneday = 86400;


if($res < $oneday)
{
   //ja, logisch!
   return "today";
}
else if($res > $oneday && $res < ($oneday*2))
{
   //...
   return "yesterday";
}
else if($res > ($oneday*2) && $res < ($oneday*3))
{
   //spreekt voor zichzelf
   return "3 days ago";
}
else
{
   //return de gewone datum
   return date("d-m-Y",$old);
}


}
?>
hoop dat het je inspireerd (uit het hoofd, wss zitten er dus wat foutjes in),



:thumb:
 
Laatst bewerkt:
Hey,

Bedankt voor de info, hier kan ik mee verder :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan