Browse Source

[Nostromo] Simplify timeDiff calculation

pull/1/head
Andrés Montañez 8 years ago
parent
commit
f407e9d92d
  1. 28
      src/Utils.php
  2. 14
      tests/UtilsTest.php

28
src/Utils.php

@ -95,32 +95,16 @@ class Utils
return 'a week ago'; return 'a week ago';
} }
if ($diff->days > 1) { if ($diff->days >= 1) {
return sprintf('%d days ago', $diff->days); return sprintf('%d day(s) ago', $diff->days);
} }
if ($diff->days == 1) { if ($diff->h >= 1) {
return 'one day ago'; return sprintf('%d hour(s) ago', $diff->h);
} }
if ($diff->h > 1) { if ($diff->i >= 1) {
return sprintf('%d hours ago', $diff->h); return sprintf('%d minute(s) ago', $diff->i);
}
if ($diff->h == 1) {
return 'one hour ago';
}
if ($diff->i > 1) {
return sprintf('%d minutes ago', $diff->i);
}
if ($diff->i == 1) {
return 'one minute ago';
}
if ($diff->s >= 10) {
return sprintf('%d seconds ago', $diff->s);
} }
return 'just now'; return 'just now';

14
tests/UtilsTest.php

@ -48,31 +48,31 @@ class UtilsTest extends TestCase
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-45 seconds'); $dateTime->modify('-45 seconds');
$this->assertEquals('45 seconds ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('just now', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-90 seconds'); $dateTime->modify('-90 seconds');
$this->assertEquals('one minute ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('1 minute(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-30 minutes'); $dateTime->modify('-30 minutes');
$this->assertEquals('30 minutes ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('30 minute(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-1 hour'); $dateTime->modify('-1 hour');
$this->assertEquals('one hour ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('1 hour(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-10 hours'); $dateTime->modify('-10 hours');
$this->assertEquals('10 hours ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('10 hour(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-1 day'); $dateTime->modify('-1 day');
$this->assertEquals('one day ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('1 day(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-3 days'); $dateTime->modify('-3 days');
$this->assertEquals('3 days ago', $utils->getTimeDiff($dateTime)); $this->assertEquals('3 day(s) ago', $utils->getTimeDiff($dateTime));
$dateTime = new DateTime(); $dateTime = new DateTime();
$dateTime->modify('-7 days'); $dateTime->modify('-7 days');

Loading…
Cancel
Save