Actually, creating new magic words, replacing CURRENT with LOCAL in their names, which use the local time zone, per discussion: http://mail.wikimedia.org/pipermail/mediawiki-l/2006-August/014542.html . The behavior of the current magic words is not changed.
'currentyear',
'currenttime',
'currenthour',
+ 'localmonth',
+ 'localmonthname',
+ 'localmonthnamegen',
+ 'localmonthabbrev',
+ 'localday',
+ 'localday2',
+ 'localdayname',
+ 'localyear',
+ 'localtime',
+ 'localhour',
'numberofarticles',
'numberoffiles',
'sitename',
'namespacee',
'currentweek',
'currentdow',
+ 'localweek',
+ 'localdow',
'revisionid',
'subpagename',
'subpagenamee',
'basepagenamee',
'urlencode',
'currenttimestamp',
+ 'localtimestamp',
'directionmark',
'language',
'contentlanguage',
$ts = time();
wfRunHooks( 'ParserGetVariableValueTs', array( &$this, &$ts ) );
+ # Use the time zone
+ global $wgLocaltimezone;
+ if ( isset( $wgLocaltimezone ) ) {
+ $oldtz = getenv( 'TZ' );
+ putenv( 'TZ='.$wgLocaltimezone );
+ }
+ $localTimestamp = date( 'YmdHis', $ts );
+ $localMonth = date( 'm', $ts );
+ $localMonthName = date( 'n', $ts );
+ $localDay = date( 'j', $ts );
+ $localDay2 = date( 'd', $ts );
+ $localDayOfWeek = date( 'w', $ts );
+ $localWeek = date( 'W', $ts );
+ $localYear = date( 'Y', $ts );
+ $localHour = date( 'H', $ts );
+ if ( isset( $wgLocaltimezone ) ) {
+ putenv( 'TZ='.$oldtz );
+ }
+
switch ( $index ) {
case 'currentmonth':
return $varCache[$index] = $wgContLang->formatNum( date( 'm', $ts ) );
return $varCache[$index] = $wgContLang->formatNum( date( 'j', $ts ) );
case 'currentday2':
return $varCache[$index] = $wgContLang->formatNum( date( 'd', $ts ) );
+ case 'localmonth':
+ return $varCache[$index] = $wgContLang->formatNum( $localMonth );
+ case 'localmonthname':
+ return $varCache[$index] = $wgContLang->getMonthName( $localMonthName );
+ case 'localmonthnamegen':
+ return $varCache[$index] = $wgContLang->getMonthNameGen( $localMonthName );
+ case 'localmonthabbrev':
+ return $varCache[$index] = $wgContLang->getMonthAbbreviation( $localMonthName );
+ case 'localday':
+ return $varCache[$index] = $wgContLang->formatNum( $localDay );
+ case 'localday2':
+ return $varCache[$index] = $wgContLang->formatNum( $localDay2 );
case 'pagename':
return $this->mTitle->getText();
case 'pagenamee':
return $varCache[$index] = $wgContLang->formatNum( (int)date( 'W', $ts ) );
case 'currentdow':
return $varCache[$index] = $wgContLang->formatNum( date( 'w', $ts ) );
+ case 'localdayname':
+ return $varCache[$index] = $wgContLang->getWeekdayName( $localDayOfWeek + 1 );
+ case 'localyear':
+ return $varCache[$index] = $wgContLang->formatNum( $localYear, true );
+ case 'localtime':
+ return $varCache[$index] = $wgContLang->time( $localTimestamp, false, false );
+ case 'localhour':
+ return $varCache[$index] = $wgContLang->formatNum( $localHour, true );
+ case 'localweek':
+ // @bug 4594 PHP5 has it zero padded, PHP4 does not, cast to
+ // int to remove the padding
+ return $varCache[$index] = $wgContLang->formatNum( (int)$localWeek );
+ case 'localdow':
+ return $varCache[$index] = $wgContLang->formatNum( $localDayOfWeek );
case 'numberofarticles':
return $varCache[$index] = $wgContLang->formatNum( wfNumberOfArticles() );
case 'numberoffiles':
return $varCache[$index] = $wgContLang->formatNum( wfNumberOfAdmins() );
case 'currenttimestamp':
return $varCache[$index] = wfTimestampNow();
+ case 'localtimestamp':
+ return $varCache[$index] = $localTimestamp;
case 'currentversion':
global $wgVersion;
return $wgVersion;
'currentyear' => array( 1, 'CURRENTYEAR' ),
'currenttime' => array( 1, 'CURRENTTIME' ),
'currenthour' => array( 1, 'CURRENTHOUR' ),
+ 'localmonth' => array( 1, 'LOCALMONTH' ),
+ 'localmonthname' => array( 1, 'LOCALMONTHNAME' ),
+ 'localmonthnamegen' => array( 1, 'LOCALMONTHNAMEGEN' ),
+ 'localmonthabbrev' => array( 1, 'LOCALMONTHABBREV' ),
+ 'localday' => array( 1, 'LOCALDAY' ),
+ 'localday2' => array( 1, 'LOCALDAY2' ),
+ 'localdayname' => array( 1, 'LOCALDAYNAME' ),
+ 'localyear' => array( 1, 'LOCALYEAR' ),
+ 'localtime' => array( 1, 'LOCALTIME' ),
+ 'localhour' => array( 1, 'LOCALHOUR' ),
'numberofpages' => array( 1, 'NUMBEROFPAGES' ),
'numberofarticles' => array( 1, 'NUMBEROFARTICLES' ),
'numberoffiles' => array( 1, 'NUMBEROFFILES' ),
'nocontentconvert' => array( 0, '__NOCONTENTCONVERT__', '__NOCC__'),
'currentweek' => array( 1, 'CURRENTWEEK' ),
'currentdow' => array( 1, 'CURRENTDOW' ),
+ 'localweek' => array( 1, 'LOCALWEEK' ),
+ 'localdow' => array( 1, 'LOCALDOW' ),
'revisionid' => array( 1, 'REVISIONID' ),
'plural' => array( 0, 'PLURAL:' ),
'fullurl' => array( 0, 'FULLURL:' ),
'currentversion' => array( 1, 'CURRENTVERSION' ),
'urlencode' => array( 0, 'URLENCODE:' ),
'currenttimestamp' => array( 1, 'CURRENTTIMESTAMP' ),
+ 'localtimestamp' => array( 1, 'LOCALTIMESTAMP' ),
'directionmark' => array( 1, 'DIRECTIONMARK', 'DIRMARK' ),
- 'language' => array( 0, '#LANGUAGE:' ),
+ 'language' => array( 0, '#LANGUAGE:' ),
'contentlanguage' => array( 1, 'CONTENTLANGUAGE', 'CONTENTLANG' ),
'pagesinnamespace' => array( 1, 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
- 'numberofadmins' => array( 1, 'NUMBEROFADMINS' ),
- 'formatnum' => array( 0, 'FORMATNUM' ),
- 'padleft' => array( 0, 'PADLEFT' ),
- 'padright' => array( 0, 'PADRIGHT' ),
+ 'numberofadmins' => array( 1, 'NUMBEROFADMINS' ),
+ 'formatnum' => array( 0, 'FORMATNUM' ),
+ 'padleft' => array( 0, 'PADLEFT' ),
+ 'padright' => array( 0, 'PADRIGHT' ),
);
'currentyear' => array( 1, 'שנה נוכחית', 'CURRENTYEAR' ),
'currenttime' => array( 1, 'שעה נוכחית', 'CURRENTTIME' ),
'currenthour' => array( 1, 'שעות נוכחיות', 'CURRENTHOUR' ),
+ 'localmonth' => array( 1, 'חודש מקומי', 'LOCALMONTH' ),
+ 'localmonthname' => array( 1, 'שם חודש מקומי', 'LOCALMONTHNAME' ),
+ 'localmonthnamegen' => array( 1, 'שם חודש מקומי קניין', 'LOCALMONTHNAMEGEN' ),
+ 'localmonthabbrev' => array( 1, 'קיצור חודש מקומי', 'LOCALMONTHABBREV' ),
+ 'localday' => array( 1, 'יום מקומי', 'LOCALDAY' ),
+ 'localday2' => array( 1, 'יום מקומי 2', 'LOCALDAY2' ),
+ 'localdayname' => array( 1, 'שם יום מקומי', 'LOCALDAYNAME' ),
+ 'localyear' => array( 1, 'שנה מקומית', 'LOCALYEAR' ),
+ 'localtime' => array( 1, 'שעה מקומית', 'LOCALTIME' ),
+ 'localhour' => array( 1, 'שעות מקומיות', 'LOCALHOUR' ),
'numberofpages' => array( 1, 'מספר דפים כולל', 'מספר דפים', 'NUMBEROFPAGES' ),
'numberofarticles' => array( 1, 'מספר ערכים', 'NUMBEROFARTICLES' ),
'numberoffiles' => array( 1, 'מספר קבצים', 'NUMBEROFFILES' ),
'nocontentconvert' => array( 0, '__ללא_המרת_תוכן__', '__NOCONTENTCONVERT__', '__NOCC__'),
'currentweek' => array( 1, 'שבוע נוכחי', 'CURRENTWEEK' ),
'currentdow' => array( 1, 'מספר יום נוכחי', 'CURRENTDOW' ),
+ 'localweek' => array( 1, 'שבוע מקומי', 'LOCALWEEK' ),
+ 'localdow' => array( 1, 'מספר יום מקומי', 'LOCALDOW' ),
'revisionid' => array( 1, 'מזהה גרסה', 'REVISIONID' ),
'plural' => array( 0, 'רבים:', 'PLURAL:' ),
'fullurl' => array( 0, 'כתובת מלאה:', 'FULLURL:' ),
'currentversion' => array( 1, 'גרסה נוכחית', 'CURRENTVERSION' ),
'urlencode' => array( 0, 'נתיב מקודד:', 'URLENCODE:' ),
'currenttimestamp' => array( 1, 'זמן נוכחי', 'CURRENTTIMESTAMP' ),
+ 'localtimestamp' => array( 1, 'זמן מקומי', 'LOCALTIMESTAMP' ),
'directionmark' => array( 1, 'סימן כיווניות', 'DIRECTIONMARK', 'DIRMARK' ),
- 'language' => array( 0, '#שפה:', '#LANGUAGE:' ),
+ 'language' => array( 0, '#שפה:', '#LANGUAGE:' ),
'contentlanguage' => array( 1, 'שפת תוכן', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
'pagesinnamespace' => array( 1, 'דפים במרחב השם:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
- 'numberofadmins' => array( 1, 'מספר מפעילים', 'NUMBEROFADMINS' ),
- 'formatnum' => array( 0, 'עיצוב מספר', 'FORMATNUM' ),
- 'padleft' => array( 0, 'ריפוד משמאל', 'PADLEFT' ),
- 'padright' => array( 0, 'ריפוד מימין', 'PADRIGHT' ),
+ 'numberofadmins' => array( 1, 'מספר מפעילים', 'NUMBEROFADMINS' ),
+ 'formatnum' => array( 0, 'עיצוב מספר', 'FORMATNUM' ),
+ 'padleft' => array( 0, 'ריפוד משמאל', 'PADLEFT' ),
+ 'padright' => array( 0, 'ריפוד מימין', 'PADRIGHT' ),
);
$namespaceNames = array(