From: Arthur Date: Thu, 18 Feb 2016 18:53:39 +0000 (+0100) Subject: Merge pull request #486 from virtualtam/refactor/datetime X-Git-Tag: v0.6.4~7 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=64282b1499a48b3924741fa1349b8800b98947e6;hp=-c;p=github%2Fshaarli%2FShaarli.git Merge pull request #486 from virtualtam/refactor/datetime cleanup: use DateTime to format dates --- 64282b1499a48b3924741fa1349b8800b98947e6 diff --combined index.php index b44cd555,12b6e04d..5bd9cac4 --- a/index.php +++ b/index.php @@@ -551,33 -551,6 +551,6 @@@ function getMaxFileSize( return $maxsize; } - /* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a timestamp (Unix epoch) - (used to build the ADD_DATE attribute in Netscape-bookmarks file) - PS: I could have used strptime(), but it does not exist on Windows. I'm too kind. */ - function linkdate2timestamp($linkdate) - { - if(strcmp($linkdate, '_000000') !== 0 || !$linkdate){ - $Y=$M=$D=$h=$m=$s=0; - $r = sscanf($linkdate,'%4d%2d%2d_%2d%2d%2d',$Y,$M,$D,$h,$m,$s); - return mktime($h,$m,$s,$M,$D,$Y); - } - return time(); - } - - /* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a RFC822 date. - (used to build the pubDate attribute in RSS feed.) */ - function linkdate2rfc822($linkdate) - { - return date('r',linkdate2timestamp($linkdate)); // 'r' is for RFC822 date format. - } - - /* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a ISO 8601 date. - (used to build the updated tags in ATOM feed.) */ - function linkdate2iso8601($linkdate) - { - return date('c',linkdate2timestamp($linkdate)); // 'c' is for ISO 8601 date format. - } - // ------------------------------------------------------------------------------------------ // Token management for XSRF protection // Token should be used in any form which acts on data (create,update,delete,import...). @@@ -769,14 -742,16 +742,16 @@@ function showRSS( { $link = $linksToDisplay[$keys[$i]]; $guid = $pageaddr.'?'.smallHash($link['linkdate']); - $rfc822date = linkdate2rfc822($link['linkdate']); + $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); $absurl = $link['url']; if (startsWith($absurl,'?')) $absurl=$pageaddr.$absurl; // make permalink URL absolute if ($usepermalinks===true) echo ''.$link['title'].''.$guid.''.$guid.''; else echo ''.$link['title'].''.$guid.''.$absurl.''; - if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) echo ''.escape($rfc822date)."\n"; + if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) { + echo ''.escape($date->format(DateTime::RSS))."\n"; + } if ($link['tags']!='') // Adding tags to each RSS entry (as mentioned in RSS specification) { foreach(explode(' ',$link['tags']) as $tag) { echo ''.$tag.''."\n"; } @@@ -857,8 -832,9 +832,9 @@@ function showATOM( { $link = $linksToDisplay[$keys[$i]]; $guid = $pageaddr.'?'.smallHash($link['linkdate']); - $iso8601date = linkdate2iso8601($link['linkdate']); - $latestDate = max($latestDate,$iso8601date); + $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); + $iso8601date = $date->format(DateTime::ISO8601); + $latestDate = max($latestDate, $iso8601date); $absurl = $link['url']; if (startsWith($absurl,'?')) $absurl=$pageaddr.$absurl; // make permalink URL absolute $entries.=''.$link['title'].''; @@@ -866,7 -842,10 +842,10 @@@ $entries.=''.$guid.''; else $entries.=''.$guid.''; - if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) $entries.=''.escape($iso8601date).''; + + if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) { + $entries.=''.escape($iso8601date).''; + } // Add permalink in description $descriptionlink = '(Permalink)'; @@@ -972,8 -951,7 +951,7 @@@ function showDailyRSS() // For each day. foreach ($days as $day => $linkdates) { - $daydate = linkdate2timestamp($day.'_000000'); // Full text date - $rfc822date = linkdate2rfc822($day.'_000000'); + $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000'); $absurl = escape(index_url($_SERVER).'?do=daily&day='.$day); // Absolute URL of the corresponding "Daily" page. // Build the HTML body of this RSS entry. @@@ -986,7 -964,8 +964,8 @@@ $l = $LINKSDB[$linkdate]; $l['formatedDescription'] = format_description($l['description'], $GLOBALS['redirector']); $l['thumbnail'] = thumbnail($l['url']); - $l['timestamp'] = linkdate2timestamp($l['linkdate']); + $l_date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $l['linkdate']); + $l['timestamp'] = $l_date->getTimestamp(); if (startsWith($l['url'], '?')) { $l['url'] = index_url($_SERVER) . $l['url']; // make permalink URL absolute } @@@ -996,10 -975,10 +975,10 @@@ // Then build the HTML for this day: $tpl = new RainTPL; $tpl->assign('title', $GLOBALS['title']); - $tpl->assign('daydate', $daydate); + $tpl->assign('daydate', $dayDate->getTimestamp()); $tpl->assign('absurl', $absurl); $tpl->assign('links', $links); - $tpl->assign('rfc822date', escape($rfc822date)); + $tpl->assign('rssdate', escape($dayDate->format(DateTime::RSS))); $html = $tpl->draw('dailyrss', $return_string=true); echo $html . PHP_EOL; @@@ -1055,7 -1034,8 +1034,8 @@@ function showDaily($pageBuilder $linksToDisplay[$key]['taglist']=$taglist; $linksToDisplay[$key]['formatedDescription'] = format_description($link['description'], $GLOBALS['redirector']); $linksToDisplay[$key]['thumbnail'] = thumbnail($link['url']); - $linksToDisplay[$key]['timestamp'] = linkdate2timestamp($link['linkdate']); + $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); + $linksToDisplay[$key]['timestamp'] = $date->getTimestamp(); } /* We need to spread the articles on 3 columns. @@@ -1080,11 -1060,12 +1060,12 @@@ $fill[$index]+=$length; } + $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000'); $data = array( 'linksToDisplay' => $linksToDisplay, 'linkcount' => count($LINKSDB), 'cols' => $columns, - 'day' => linkdate2timestamp($day.'_000000'), + 'day' => $dayDate->getTimestamp(), 'previousday' => $previousday, 'nextday' => $nextday, ); @@@ -1588,7 -1569,7 +1569,7 @@@ function renderPage( $link = array( 'title' => trim($_POST['lf_title']), 'url' => $url, - 'description' => trim($_POST['lf_description']), + 'description' => $_POST['lf_description'], 'private' => (isset($_POST['lf_private']) ? 1 : 0), 'linkdate' => $linkdate, 'tags' => str_replace(',', ' ', $tags) @@@ -1799,7 -1780,8 +1780,8 @@@ HTML ($exportWhat=='private' && $link['private']!=0) || ($exportWhat=='public' && $link['private']==0)) { - echo '
'.$link['title']."\n"; if ($link['description']!='') echo '
'.$link['description']."\n"; @@@ -2042,7 -2024,8 +2024,8 @@@ function buildLinkList($PAGE,$LINKSDB $link['description'] = format_description($link['description'], $GLOBALS['redirector']); $classLi = ($i % 2) != 0 ? '' : 'publicLinkHightLight'; $link['class'] = $link['private'] == 0 ? $classLi : 'private'; - $link['timestamp'] = linkdate2timestamp($link['linkdate']); + $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); + $link['timestamp'] = $date->getTimestamp(); $taglist = explode(' ', $link['tags']); uasort($taglist, 'strcasecmp'); $link['taglist'] = $taglist;