* 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);
$dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000');
$data = array(
+ 'pagetitle' => $conf->get('general.title') .' - '. format_date($dayDate, false),
'linksToDisplay' => $linksToDisplay,
'cols' => $columns,
'day' => $dayDate->getTimestamp(),
+ 'dayDate' => $dayDate,
'previousday' => $previousday,
'nextday' => $nextday,
);
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));
}
/**
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));
}
/**
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));
}
/**
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));
}
/**
$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));
}
/**
</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"}
* Remove CSS target padding (for fixed bar)
*/
if (location.hash != '') {
- var anchor = document.querySelector(location.hash);
+ var anchor = document.getElementById(location.hash.substr(1));
if (anchor != null) {
var padsize = anchor.clientHeight;
- console.log(document.querySelector(location.hash).clientHeight);
this.window.scroll(0, this.window.scrollY - padsize);
anchor.style.paddingTop = 0;
}