]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Theme: use format_date function for daily date 838/head
authorArthurHoaro <arthur@hoa.ro>
Tue, 28 Mar 2017 18:40:14 +0000 (20:40 +0200)
committerArthurHoaro <arthur@hoa.ro>
Tue, 28 Mar 2017 18:43:30 +0000 (20:43 +0200)
application/Utils.php
index.php
tests/languages/de/UtilsDeTest.php
tests/languages/en/UtilsEnTest.php
tests/languages/fr/UtilsFrTest.php
tpl/default/daily.html

index 5c077450e3a65016f55b0ede559dad4552b47e2b..d6e066102b62a61baf96c4ad5cecd947725a11ac 100644 (file)
@@ -321,24 +321,26 @@ function normalize_spaces($string)
  * otherwise default format '%c' will be returned.
  *
  * @param DateTime $date to format.
+ * @param bool     $time Displays time if true.
  * @param bool     $intl Use international format if true.
  *
  * @return bool|string Formatted date, or false if the input is invalid.
  */
-function format_date($date, $intl = true)
+function format_date($date, $time = true, $intl = true)
 {
     if (! $date instanceof DateTime) {
         return false;
     }
 
     if (! $intl || ! class_exists('IntlDateFormatter')) {
-        return strftime('%c', $date->getTimestamp());
+        $format = $time ? '%c' : '%x';
+        return strftime($format, $date->getTimestamp());
     }
 
     $formatter = new IntlDateFormatter(
         setlocale(LC_TIME, 0),
         IntlDateFormatter::LONG,
-        IntlDateFormatter::LONG
+        $time ? IntlDateFormatter::LONG : IntlDateFormatter::NONE
     );
 
     return $formatter->format($date);
index 5c21c2f6a7f967c2f2f54e43225b22ec926248b5..4a1f00ccb52378a4cc1d059c65c2ee69bca26091 100644 (file)
--- a/index.php
+++ b/index.php
@@ -698,6 +698,7 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager)
         'linksToDisplay' => $linksToDisplay,
         'cols' => $columns,
         'day' => $dayDate->getTimestamp(),
+        'dayDate' => $dayDate,
         'previousday' => $previousday,
         'nextday' => $nextday,
     );
index 545fa572e46dbdeaf40db50a0da942a5f49169dd..6c9c9adce8cb6b02653bf32b4660f5f69c04edd5 100644 (file)
@@ -11,7 +11,16 @@ class UtilsDeTest extends UtilsTest
     public function testDateFormat()
     {
         $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
-        $this->assertRegExp('/1. Januar 2017 (um )?10:11:12 GMT\+0?3(:00)?/', format_date($date, true));
+        $this->assertRegExp('/1\. Januar 2017 (um )?10:11:12 GMT\+0?3(:00)?/', format_date($date, true, true));
+    }
+
+    /**
+     * Test date_format() without time.
+     */
+    public function testDateFormatNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
+        $this->assertRegExp('/1\. Januar 2017/', format_date($date, false,true));
     }
 
     /**
@@ -20,7 +29,16 @@ class UtilsDeTest extends UtilsTest
     public function testDateFormatDefault()
     {
         $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
-        $this->assertEquals('So 01 Jan 2017 10:11:12 EAT', format_date($date, false));
+        $this->assertEquals('So 01 Jan 2017 10:11:12 EAT', format_date($date, true, false));
+    }
+
+    /**
+     * Test date_format() using builtin PHP function strftime without time.
+     */
+    public function testDateFormatDefaultNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170201_101112');
+        $this->assertEquals('01.02.2017', format_date($date, false, false));
     }
 
     /**
index 7c829ac7e5856cd003e979949572d7c1551397da..d8680b2b429c1ae6ab4b1f0f888e61c5d3faf4a4 100644 (file)
@@ -11,7 +11,16 @@ class UtilsEnTest extends UtilsTest
     public function testDateFormat()
     {
         $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
-        $this->assertRegExp('/January 1, 2017 (at )?10:11:12 AM GMT\+0?3(:00)?/', format_date($date, true));
+        $this->assertRegExp('/January 1, 2017 (at )?10:11:12 AM GMT\+0?3(:00)?/', format_date($date, true, true));
+    }
+
+    /**
+     * Test date_format() without time.
+     */
+    public function testDateFormatNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
+        $this->assertRegExp('/January 1, 2017/', format_date($date, false, true));
     }
 
     /**
@@ -20,7 +29,16 @@ class UtilsEnTest extends UtilsTest
     public function testDateFormatDefault()
     {
         $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
-        $this->assertEquals('Sun 01 Jan 2017 10:11:12 AM EAT', format_date($date, false));
+        $this->assertEquals('Sun 01 Jan 2017 10:11:12 AM EAT', format_date($date, true, false));
+    }
+
+    /**
+     * Test date_format() using builtin PHP function strftime without time.
+     */
+    public function testDateFormatDefaultNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170201_101112');
+        $this->assertEquals('02/01/2017', format_date($date, false, false));
     }
 
     /**
index 45996ee27318c37c6e0e3db2ef76d58ca990a636..0d50a87829f241591b0868446831c2918dcd4618 100644 (file)
@@ -14,13 +14,31 @@ class UtilsFrTest extends UtilsTest
         $this->assertRegExp('/1 janvier 2017 (à )?10:11:12 UTC\+0?3(:00)?/', format_date($date));
     }
 
+    /**
+     * Test date_format() without time.
+     */
+    public function testDateFormatNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
+        $this->assertRegExp('/1 janvier 2017/', format_date($date, false, true));
+    }
+
     /**
      * Test date_format() using builtin PHP function strftime.
      */
     public function testDateFormatDefault()
     {
         $date = DateTime::createFromFormat('Ymd_His', '20170101_101112');
-        $this->assertEquals('dim. 01 janv. 2017 10:11:12 EAT', format_date($date, false));
+        $this->assertEquals('dim. 01 janv. 2017 10:11:12 EAT', format_date($date, true, false));
+    }
+
+    /**
+     * Test date_format() using builtin PHP function strftime without time.
+     */
+    public function testDateFormatDefaultNoTime()
+    {
+        $date = DateTime::createFromFormat('Ymd_His', '20170201_101112');
+        $this->assertEquals('01/02/2017', format_date($date, false, false));
     }
 
     /**
index d8c91078ad533dbda81d769c1f543292ae1b68e5..29d845d5307231d1337e3964837d8931a89736e0 100644 (file)
@@ -44,7 +44,7 @@
         </div>
       </div>
       <div>
-        <h3 class="window-subtitle">{function="strftime('%A %d, %B %Y', $day)"}</h3>
+        <h3 class="window-subtitle">{function="format_date($dayDate, false)"}</h3>
 
         <div id="plugin_zone_about_daily" class="plugin_zone">
           {loop="$daily_about_plugin"}