login  Naam:   Wachtwoord: 
Registreer je!
 Forum

relative_time uitbreiden.. (Opgelost)

Offline genkstar - 27/12/2009 19:52
Avatar van genkstarNieuw lid Hey mensen,

Ik heb een functie van javascript naar PHP omgezet, maar ik wil deze uitbreiden, alleen weet ik niet hoe ik dat moet doen..

ik wil maanden, jaren en secondes erin zetten..


  1. function relative_time($date)
  2. {
  3. $date = time() - strtotime($date);
  4.  
  5. if ($date < 60) {
  6. return 'minder dan een minuut geleden';
  7. } else if($date < 120) {
  8. return '1 minuut geleden';
  9. } else if($date < (60*60)) {
  10. return (int)($date / 60).' minuten geleden';
  11. } else if($date < (120*60)) {
  12. return '1 uur geleden';
  13. } else if($date < (24*60*60)) {
  14. return (int)(($date) / 3600).' uren geleden';
  15. } else if($date < (48*60*60)) {
  16. return '1 dag geleden';
  17. } else {
  18. return (int)($date / 86400). ' dagen geleden';
  19. }
  20. }


Wie kan me helpen 

2 antwoorden

Gesponsorde links
Offline TotempaaltJ - 27/12/2009 20:10 (laatste wijziging 27/12/2009 20:11)
Avatar van TotempaaltJ PHP interesse $date is in seconden, dus seconden zijn makkelijk en voor zover ik weet bestaat "else if" niet in PHP, maar moet het "elseif" zijn. Als het goed is klopt het zo wel?

  1. function relative_time($date)
  2. {
  3. $date = time() - strtotime($date);
  4.  
  5. if ($date < 60) {
  6. return $date . ' seconden geleden';
  7. } elseif($date == 60) {
  8. return '1 minuut geleden';
  9. } elseif($date > 60 && $date < 120) {
  10. return '1 minuut en ' . $date-60 . ' seconden geleden';
  11. } elseif($date < (60*60)) {
  12. return (int)($date / 60).' minuten geleden';
  13. } elseif($date < (120*60)) {
  14. return '1 uur geleden';
  15. } elseif($date < (24*60*60)) {
  16. return (int)(($date) / 3600).' uren geleden';
  17. } elseif($date < (48*60*60)) {
  18. return '1 dag geleden';
  19. } elseif($date < (168*60*60)) { // 168 uur = 7 dagen
  20. return (int)($date / 86400). ' dagen geleden';
  21. } elseif($date >= (168*60*60) && $date < (744*60*60)) { // dit kan je weglaten
  22. return (int)($date / 2678400). ' weken geleden';
  23. } elseif($date >= (744*60*60) && $date <= (8760*60*60) { // een of meer maanden, maar minder dan een jaar
  24. return (int)($date / 2629743.83). ' maanden geleden';
  25. } else { // anders is het altijd in jaren
  26. return (int)($date / 31556926). ' jaren geleden';
  27. }
  28. }

Dit is precies op dezelfde manier als jij het deed, met het aantal seconden van Google gehaald (Google.be: 1 year in seconds).
Bedankt door: genkstar
Offline genkstar - 27/12/2009 20:20
Avatar van genkstar Nieuw lid Ik krijg een foutmelding dat ergens een accolade te veel/te weinig is..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s