JAVASCRIPT时间戳转换工具

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>时间戳转换工具</title>
<style type="text/css">
<!--
html { font:12px/1.67 Arial; color:#222; }
body { background-color:#EEE; margin:0; padding:0; }
table, table th, table td { padding:0; border:solid 1px #000; border-collapse:collapse; border-spacing:0; }
table { border-style:solid none none solid; }
table th, table td { border-style:none solid solid none; }
-->
</style>
</head>

<body>
<table style="width:421px;margin:5% auto;">
<thead>
<tr>
<th colspan="2" height="32">时间戳转换工具</th>
</tr>
</thead>
<tbody>
<tr>
<td height="32" colspan="2" align="center" id="option"></td>
</tr>
<tr>
<td width="96" height="32" align="right">请输入时间戳:</td>
<td width="230" align="center"><input type="text" id="timestamp"  style="width:275px;" maxlength="10"/></td>
</tr>
</tbody>
<tfoot>
<tr>
<td height="32" colspan="2" align="center">JavaScript 日期与时间戳相互转换</td>
</tr>
</tfoot>
</table>
<script type="text/javascript">
String.prototype.leftPad = function(len, pad) {//获取字符串长度,计算双字节字符
len = len || 2;
pad = pad || '0';
var str = this;
if (this.length < len) {
str = pad + this;
str = str.leftPad(len, pad);
}
return str;
}

myDate = function() {//日期类
this.Weeks = new Array('日', '一', '二', '三', '四', '五', '六');
this.dateObject = new Date();
this.yearElement = this.createYear();
this.monthElement = this.createMonth();
this.dayElement = this.createDay();
this.hourElement = this.createHour();
this.minuteElement = this.createMinute();
this.secondElement = this.createSecond();
this.weekElement = this.createWeek();
this.timestamp = Math.floor(this.dateObject.valueOf() / 1000);
this.Settings();
return this;
}

myDate.prototype.getWeek = function() {//获取星期,转换为中文
var Week = this.dateObject.getDay();
return '星期' + this.Weeks[Week];
}

myDate.prototype.createYear = function() {//创建年份选项元素
if (typeof this.yearElement != 'object') {
this.yearElement = document.createElement('select');
this.yearElement.self = this;
var Year = this.dateObject.getFullYear();
for (var i = (Year + 10); i > 1969; i--) {
var Element = document.createElement('option');
Element.value = i;
Element.innerHTML = i;
this.yearElement.appendChild(Element);
}
this.yearElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setFullYear(newValue);
this.self.Settings();
}
}
return this.yearElement;
}

myDate.prototype.createMonth = function() {//创建月份选项元素
if (typeof this.monthElement != 'object') {
this.monthElement = document.createElement('select');
this.monthElement.self = this;
for (var i = 0; i < 12; i++) {
var Element = document.createElement('option');
Element.value = i;
Element.innerHTML = String(i + 1).leftPad();
this.monthElement.appendChild(Element);
}
this.monthElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setMonth(newValue);
this.self.createDay();
this.self.Settings();
}
}
return this.monthElement;
}

myDate.prototype.createDay = function() {//创建日期选项元素
var dayNum = new Date(this.dateObject.getFullYear(), this.dateObject.getMonth() + 1, 0).getDate();
if (typeof this.dayElement != 'object') {
this.dayElement = document.createElement('select');
this.dayElement.self = this;
this.dayElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setDate(newValue);
this.self.Settings();
}
} else {
if (this.dateObject.getDate() > dayNum) {
this.dateObject.setDate(dayNum);
}
this.dayElement.length = 0;
}
for (var i = 0; i < dayNum; i++) {
var Element = document.createElement('option');
Element.value = (i + 1);
Element.innerHTML = String(i + 1).leftPad();
this.dayElement.appendChild(Element);
}
return this.dayElement;
}

myDate.prototype.createHour = function() {//创建小时选项元素
if (typeof this.hourElement != 'object') {
this.hourElement = document.createElement('select');
this.hourElement.self = this;
for (var i = 0; i < 24; i++) {
var Element = document.createElement('option');
Element.value = i;
Element.innerHTML = String(i).leftPad();
this.hourElement.appendChild(Element);
}
this.hourElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setHours(newValue);
this.self.Settings();
}
}
return this.hourElement;
}

myDate.prototype.createMinute = function() {//创建分钟选项元素
if (typeof this.minuteElement != 'object') {
this.minuteElement = document.createElement('select');
this.minuteElement.self = this;
for (var i = 0; i < 60; i++) {
var Element = document.createElement('option');
Element.value = i;
Element.innerHTML = String(i).leftPad();
this.minuteElement.appendChild(Element);
}
this.minuteElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setMinutes(newValue);
this.self.Settings();
}
}
return this.minuteElement;
}

myDate.prototype.createSecond = function() {//创建秒选项元素
if (typeof this.secondElement != 'object') {
this.secondElement = document.createElement('select');
this.secondElement.self = this;
for (var i = 0; i < 60; i++) {
var Element = document.createElement('option');
Element.value = i;
Element.innerHTML = String(i).leftPad();
this.secondElement.appendChild(Element);
}
this.secondElement.onchange = function() {
var newValue = parseInt(this.value);
this.self.dateObject.setSeconds(newValue);
this.self.Settings();
}
}
return this.secondElement;
}

myDate.prototype.createWeek = function() {//创建星期元素
if (typeof this.weekElement != 'object') {
this.weekElement = document.createTextNode(this.getWeek());
} else {
this.weekElement.data = this.getWeek();
}
return this.weekElement;
}

myDate.prototype.Settings = function() {//刷新应用设置
this.timestamp = Math.floor(this.dateObject.valueOf() / 1000);
this.yearElement.value = this.dateObject.getFullYear();
this.monthElement.value = this.dateObject.getMonth();
this.dayElement.value = this.dateObject.getDate();
this.hourElement.value = this.dateObject.getHours();
this.minuteElement.value = this.dateObject.getMinutes();
this.secondElement.value = this.dateObject.getSeconds();
this.weekElement.data = this.getWeek();
if (typeof this.change == 'function') {
this.change();
}
return this;
}

myDate.prototype.writeOption = function(recep) {//将元素插入指定对象
if (typeof recep == 'object') {
var label = document.createElement('label');
label.appendChild(this.yearElement);
label.appendChild(document.createTextNode('年'));
recep.appendChild(label);

label = document.createElement('label');
label.appendChild(this.monthElement);
label.appendChild(document.createTextNode('月'));
recep.appendChild(label);

label = document.createElement('label');
label.appendChild(this.dayElement);
label.appendChild(document.createTextNode('日'));
recep.appendChild(label);

label = document.createElement('label');
label.appendChild(this.hourElement);
label.appendChild(document.createTextNode('时'));
recep.appendChild(label);

label = document.createElement('label');
label.appendChild(this.minuteElement);
label.appendChild(document.createTextNode('分'));
recep.appendChild(label);

label = document.createElement('label');
label.appendChild(this.secondElement);
label.appendChild(document.createTextNode('秒 '));
recep.appendChild(label);

recep.appendChild(document.createElement('label').appendChild(obj.weekElement));

this.Settings();
}
return recep;
}

myDate.prototype.setTimestamp = function(timestamp) {//应用时间戳设置
if (typeof timestamp == 'undefined') {
timestamp = Math.floor(new Date().valueOf() / 1000);
} else {
timestamp = parseInt(timestamp) | 0;
}
this.dateObject = new Date(timestamp * 1000);
this.Settings();
}

myDate.prototype.change = function() {}//选项变更事件处理函数

var obj = new myDate();
obj.change = function() {
document.getElementById('timestamp').value = this.timestamp;
}

document.getElementById('timestamp').onkeyup = function() {
obj.setTimestamp(this.value);
}

document.getElementById('timestamp').onblur = function() {
this.value = obj.timestamp;
}

obj.writeOption(document.getElementById('option'));
</script>
</body>
</html>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值