Unix纪元秒转换为日期的JavaScript实现

先转个题目,来自【百练】 http://poj.grids.cn/contest1814/D/

D:unix纪元

时间限制: 1000ms
内存限制: 65536kB
描述:

在著名的unix系统中,使用了一种简洁高效的时间表示方法,即:
将1970年1月1日0点作为“unix纪元”的原点,从1970年1月1日开始经过的秒数存储为一个32位整数。
请编写一个程序,帮助把一个unix时间辍,转换成形如"YYYY-mm-dd HH:ii:ss"的格式,其中的字母分别代表

YYYY

4 位数字完整表示的年份

mm

数字表示的月份,有前导零的 2 位数字

dd

月份中的第几天,有前导零的2位数字

HH

小时,24 小时格式,有前导零

ii

有前导零的分钟数

ss

秒数,有前导零

输入
输入数据有若干行,每行包含一个整数t,(0<=t<2^31)

输出
对每一行输入数据,输出一行,为形如“YYYY-mm-dd HH:ii:ss”格式的时间

样例输入
10

1234567890

样例输出
1970-01-01 00:00:10
2009-02-13 23:31:30

------------------------------------------------------------------------------------------------------------------------------------

接下来是 【Unix纪元秒转换为日期的JavaScript实现】

来自http://www.ligaofeng.com/?p=49

<script type="text/javascript">
	<!--
	/* 测试时php.ini中的date.timezone = Asia/Shanghai,
	 * 客户端电脑时间所在的时间也为东八区;
	 * 如果客户端电脑时间所在的时间不为东八区,
	 * 且程序没做修改的情况下则还原到原始日期时会相差几个小时;
	*/
	var str = '2008-10-09 21:35:28'; //PHP中对应的UNIX时间戳为1223559328
	var new_str = str.replace(/:/g, '-');
	new_str = new_str.replace(/ /g, '-');
	var arr = new_str.split('-');
	document.write('<b>原始日期</b>:'+ str);
	var datum = new Date(Date.UTC(arr[0], arr[1]-1, arr[2]
							,arr[3]-8,arr[4],arr[5]));
	document.write('<br><b>转换后的UNIX时间戳为</b>: ' + (datum.getTime()/1000));
	var datum = new Date(1247945150 * 1000);
	document.write('<br><b>还原到原始日期为</b>:' + datum.toLocaleString());
	
	
	var now = new Date()
	var slong = now.getTime();
	slong = (slong - slong %1000)/1000
	document.write('<br><b>当前时间的UNIX时间</b>:' + slong);
	document.write('<br><b>当前时间</b>:' + now.toLocaleString());
-->
</script>


你可能感兴趣的:(Unix纪元秒转换为日期的JavaScript实现)