<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://wiki.ryanyang.kr/index.php?action=history&amp;feed=atom&amp;title=%EB%AF%B8%EB%94%94%EC%96%B4%EC%9C%84%ED%82%A4%3AGadget-UTCLiveClock.js</id>
	<title>미디어위키:Gadget-UTCLiveClock.js - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ryanyang.kr/index.php?action=history&amp;feed=atom&amp;title=%EB%AF%B8%EB%94%94%EC%96%B4%EC%9C%84%ED%82%A4%3AGadget-UTCLiveClock.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.ryanyang.kr/index.php?title=%EB%AF%B8%EB%94%94%EC%96%B4%EC%9C%84%ED%82%A4:Gadget-UTCLiveClock.js&amp;action=history"/>
	<updated>2026-05-04T02:26:58Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.32.2</generator>
	<entry>
		<id>https://wiki.ryanyang.kr/index.php?title=%EB%AF%B8%EB%94%94%EC%96%B4%EC%9C%84%ED%82%A4:Gadget-UTCLiveClock.js&amp;diff=75&amp;oldid=prev</id>
		<title>라이언양: 새 문서: /**  * Warning! Global gadget file!  *   * This gadget adds a clock in the personal toolbar that shows the current time  * in UTC, and also provides a link to purge the current page....</title>
		<link rel="alternate" type="text/html" href="https://wiki.ryanyang.kr/index.php?title=%EB%AF%B8%EB%94%94%EC%96%B4%EC%9C%84%ED%82%A4:Gadget-UTCLiveClock.js&amp;diff=75&amp;oldid=prev"/>
		<updated>2019-07-06T12:32:20Z</updated>

		<summary type="html">&lt;p&gt;새 문서: /**  * Warning! Global gadget file!  *   * This gadget adds a clock in the personal toolbar that shows the current time  * in UTC, and also provides a link to purge the current page....&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Warning! Global gadget file!&lt;br /&gt;
 * &lt;br /&gt;
 * This gadget adds a clock in the personal toolbar that shows the current time&lt;br /&gt;
 * in UTC, and also provides a link to purge the current page.&lt;br /&gt;
 *&lt;br /&gt;
 * Revision: November 2017&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-UTCLiveClock.js&lt;br /&gt;
 *&lt;br /&gt;
 * Installation:&lt;br /&gt;
 * &lt;br /&gt;
 * 1. Copy the JS page at https://www.mediawiki.org/wiki/MediaWiki:Gadget-UTCLiveClock.js&lt;br /&gt;
 * to the page [[MediaWiki:Gadget-UTCLiveClock.js]] on your wiki.&lt;br /&gt;
 * &lt;br /&gt;
 * 2. Copy the CSS page at https://www.mediawiki.org/wiki/MediaWiki:Gadget-UTCLiveClock.css&lt;br /&gt;
 * to the page [[MediaWiki:Gadget-UTCLiveClock.css]] on your wiki.&lt;br /&gt;
 * &lt;br /&gt;
 * 3. Copy the CSS page at https://www.mediawiki.org/wiki/MediaWiki:Gadget-UTCLiveClock-pagestyles.css&lt;br /&gt;
 * to the page [[MediaWiki:Gadget-UTCLiveClock-pagestyles.css]] on your wiki.&lt;br /&gt;
 * &lt;br /&gt;
 * 4. Add a description of the gadget to the page [[MediaWiki:Gadget-UTCLiveClock]]&lt;br /&gt;
 * on your wiki. You can use https://www.mediawiki.org/wiki/MediaWiki:Gadget-UTCLiveClock&lt;br /&gt;
 * as a template.&lt;br /&gt;
 * &lt;br /&gt;
 * 5. Add the following code to your wiki's [[MediaWiki:Gadgets-definition]]:&lt;br /&gt;
 * &lt;br /&gt;
 *     * UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api,mediawiki.notify|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css&lt;br /&gt;
 *     * UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
/*global mw, $ */&lt;br /&gt;
mw.loader.using( ['mediawiki.util', 'mediawiki.api', 'mediawiki.notify'] ).then( function () {&lt;br /&gt;
&lt;br /&gt;
function padWithZeroes( num ) {&lt;br /&gt;
	// Pad a number with zeroes. The number must be an integer where&lt;br /&gt;
	// 0 &amp;lt;= num &amp;lt; 100.&lt;br /&gt;
	return num &amp;lt; 10 ? '0' + num.toString() : num.toString(); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function showTime( $target ) {&lt;br /&gt;
	var now = new Date();&lt;br /&gt;
&lt;br /&gt;
	// Set the time.&lt;br /&gt;
	var hh = now.getUTCHours();&lt;br /&gt;
	var mm = now.getUTCMinutes();&lt;br /&gt;
	var ss = now.getUTCSeconds();&lt;br /&gt;
	var time = padWithZeroes( hh ) + ':' + padWithZeroes( mm ) + ':' + padWithZeroes( ss );&lt;br /&gt;
	$target.text( time );&lt;br /&gt;
&lt;br /&gt;
	// Schedule the next time change.&lt;br /&gt;
	// &lt;br /&gt;
	// We schedule the change for 100 ms _after_ the next clock tick. The delay&lt;br /&gt;
	// from setTimeout is not precise, and if we aim exactly for the tick, there&lt;br /&gt;
	// is a chance that the function will run slightly before it. If this&lt;br /&gt;
	// happens, we will display the same time for two seconds in a row - not&lt;br /&gt;
	// good. By scheduling 100 ms after the tick, we will always be about 100 ms&lt;br /&gt;
	// late, but we are also very likely to display a new time every second.&lt;br /&gt;
	var ms = now.getUTCMilliseconds();&lt;br /&gt;
	setTimeout( function () {&lt;br /&gt;
		showTime( $target );&lt;br /&gt;
	}, 1100 - ms );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function liveClock() {&lt;br /&gt;
	// Set CSS styles. We do this here instead of on the CSS page because some&lt;br /&gt;
	// wikis load this page directly, without loading the accompanying CSS.&lt;br /&gt;
	mw.util.addCSS( '#utcdate a { font-weight:bolder; font-size:120%; }' );&lt;br /&gt;
&lt;br /&gt;
	// Reset whitespace that was set in the peer CSS gadget; this prevents the&lt;br /&gt;
	// effect of the p-personal menu jumping to the left when the JavaScript&lt;br /&gt;
	// loads.&lt;br /&gt;
	$( '.client-js &amp;gt; body.skin-vector #p-personal ul' ).css( 'margin-right', 'initial' );&lt;br /&gt;
	$( '.client-js &amp;gt; body.skin-monobook #p-personal ul' ).css( 'margin-right', 'initial' );&lt;br /&gt;
&lt;br /&gt;
	// Add the portlet link.&lt;br /&gt;
	var node = mw.util.addPortletLink(&lt;br /&gt;
		'p-personal',&lt;br /&gt;
		mw.util.getUrl( null, { action: 'purge' } ),&lt;br /&gt;
		'',&lt;br /&gt;
		'utcdate'&lt;br /&gt;
	);&lt;br /&gt;
	if ( !node ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Purge the page when the clock is clicked. We have to do this through the&lt;br /&gt;
	// API, as purge URLs now make people click through a confirmation screen.&lt;br /&gt;
	$( node ).on( 'click', function ( e ) {&lt;br /&gt;
		new mw.Api().post( { action: 'purge', titles: mw.config.get( 'wgPageName' ) } ).then( function () {&lt;br /&gt;
			location.reload();&lt;br /&gt;
		}, function () {&lt;br /&gt;
			mw.notify( 'Purge failed', { type: 'error' } );&lt;br /&gt;
		} );&lt;br /&gt;
		e.preventDefault();&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	// Show the clock.&lt;br /&gt;
	showTime( $( node ).find( 'a:first' ) );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$( liveClock );&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>라이언양</name></author>
		
	</entry>
</feed>