如果只是将当前时间转成时间戳,可以直接使用new Date().getTime()/1000;但如果是将某个具体时间或日期转成Unix时间戳,ie不支持像new Date(“2013-1-1”) 这样带参数的方法,将返回NaN
对此,我写了以下函数,支持ie6+,谷歌,火狐等浏览器:
function getTime(day){
re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day);
return new Date(re[1],(re[2]||1)-1,re[3]||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000;
}
//test
alert(getTime("2013-02-03 10:10:10"));
alert(getTime("2013-02-03"));
alert(getTime("2013-02"));
alert(getTime("2013"));
下面这个将时间戳转换成日期格式的函数,支持自定义的日期格式,效果类似PHP的date函数,同样支持ie6+,谷歌,火狐等浏览器。这个函数是网友实现的,以后有时间我也写一个出来 ^_^
function date(format, timestamp){
var a, jsdate=((timestamp) ? new Date(timestamp*1000) : new Date());
var pad = function(n, c){
if((n = n + "").length < c){
return new Array(++c - n.length).join("0") + n;
} else {
return n;
}
};
var txt_weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var txt_ordin = {1:"st", 2:"nd", 3:"rd", 21:"st", 22:"nd", 23:"rd", 31:"st"};
var txt_months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var f = {
// Day
d: function(){return pad(f.j(), 2)},
D: function(){return f.l().substr(0,3)},
j: function(){return jsdate.getDate()},
l: function(){return txt_weekdays[f.w()]},
N: function(){return f.w() + 1},
S: function(){return txt_ordin[f.j()] ? txt_ordin[f.j()] : 'th'},
w: function(){return jsdate.getDay()},
z: function(){return (jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5 >> 0},
// Week
W: function(){
var a = f.z(), b = 364 + f.L() - a;
var nd2, nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1;
if(b <= 2 && ((jsdate.getDay() || 7) - 1) <= 2 - b){
return 1;
} else{
if(a <= 2 && nd >= 4 && a >= (6 - nd)){
nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31");
return date("W", Math.round(nd2.getTime()/1000));
} else{
return (1 + (nd <= 3 ? ((a + nd) / 7) : (a - (7 - nd)) / 7) >> 0);
}
}
},
// Month
F: function(){return txt_months[f.n()]},
m: function(){return pad(f.n(), 2)},
M: function(){return f.F().substr(0,3)},
n: function(){return jsdate.getMonth() + 1},
t: function(){
var n;
if( (n = jsdate.getMonth() + 1) == 2 ){
return 28 + f.L();
} else{
if( n & 1 && n < 8 || !(n & 1) && n > 7 ){
return 31;
} else{
return 30;
}
}
},
// Year
L: function(){var y = f.Y();return (!(y & 3) && (y % 1e2 || !(y % 4e2))) ? 1 : 0},
//o not supported yet
Y: function(){return jsdate.getFullYear()},
y: function(){return (jsdate.getFullYear() + "").slice(2)},
// Time
a: function(){return jsdate.getHours() > 11 ? "pm" : "am"},
A: function(){return f.a().toUpperCase()},
B: function(){
// peter paul koch:
var off = (jsdate.getTimezoneOffset() + 60)*60;
var theSeconds = (jsdate.getHours() * 3600) + (jsdate.getMinutes() * 60) + jsdate.getSeconds() + off;
var beat = Math.floor(theSeconds/86.4);
if (beat > 1000) beat -= 1000;
if (beat < 0) beat += 1000;
if ((String(beat)).length == 1) beat = "00"+beat;
if ((String(beat)).length == 2) beat = "0"+beat;
return beat;
},
g: function(){return jsdate.getHours() % 12 || 12},
G: function(){return jsdate.getHours()},
h: function(){return pad(f.g(), 2)},
H: function(){return pad(jsdate.getHours(), 2)},
i: function(){return pad(jsdate.getMinutes(), 2)},
s: function(){return pad(jsdate.getSeconds(), 2)},
//u not supported yet
// Timezone
//e not supported yet
//I not supported yet
O: function(){
var t = pad(Math.abs(jsdate.getTimezoneOffset()/60*100), 4);
if (jsdate.getTimezoneOffset() > 0) t = "-" + t; else t = "+" + t;
return t;
},
P: function(){var O = f.O();return (O.substr(0, 3) + ":" + O.substr(3, 2))},
//T not supported yet
//Z not supported yet
// Full Date/Time
c: function(){return f.Y() + "-" + f.m() + "-" + f.d() + "T" + f.h() + ":" + f.i() + ":" + f.s() + f.P()},
//r not supported yet
U: function(){return Math.round(jsdate.getTime()/1000)}
};
return format.replace(/[\\]?([a-zA-Z])/g, function(t, s){
if( t!=s ){
// escaped
ret = s;
} else if( f[s] ){
// a date function exists
ret = f[s]();
} else{
// nothing special
ret = s;
}
return ret;
});
}
//test
alert(date('Y-m-d H:i:s',(new Date).getTime()/1000));
alert(date('Y-m-d',(new Date).getTime()/1000));
alert(date('Y-m-d H:i:s','1355252653'));
分享到:
相关推荐
另一个函数date用于将时间戳转换为可读的日期格式。这个函数使用了正则表达式,支持了自定义日期格式的输出,类似于PHP中的date函数。这个转换函数同样兼容了老版本的浏览器。在函数内部,首先通过传入的时间戳参数...
这个压缩包文件的标题"date_时间转换_时间戳转换_"表明它包含了一个小程序,该程序能实现时间戳与日期、时间之间的相互转换。让我们详细探讨一下这个主题。 时间戳(Timestamp)是一种在计算机系统中表示特定时刻的...
这个工具的使用非常简单,开发者只需要输入一个时间戳值,程序就能将其转化为"yyyy-MM-dd HH:mm:ss"的格式,这对于查看日志文件、分析事件发生顺序或者处理与时间相关的数据时非常有用。 在实际开发中,时间戳的...
本篇文章主要介绍了C# DateTime与时间戳转换实例,包括JavaScript时间戳和Unix时间戳的相互转换。 时间戳的定义 时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数或总秒数。JavaScript时间戳...
文章通过对`formatDate`函数的细致讲解,帮助读者理解如何将JavaScript中的时间戳转换成易读的格式化日期字符串。这一过程不仅涉及了JavaScript中的日期时间处理,还涵盖了ES6新特性在实际开发中的应用。通过阅读和...
在大多数编程语言中,你可以直接将时间戳转换为日期对象,反之亦然。 2. **毫秒级时间戳**:在需要更高精度的情况下使用,例如在高频率交易或实时数据分析中。这种时间戳增加了时间单位,可以精确到毫秒。 3. **...
"DateHelper"是一个专门针对日期和时间戳转换的库,它支持在浏览器环境和Node.js环境中使用,这使得开发者在跨平台开发时能够有一致的日期处理体验。下面将详细探讨DateHelper库的特性、用法以及如何在实际项目中...
了解这些基本概念后,你可以根据实际需求将`timeToDate.js`函数整合到你的项目中,无论是将服务器返回的时间戳转换为用户友好的日期,还是将用户输入的日期转换为时间戳以便发送请求,都将变得更加便捷。在使用时,...
- 在进行时间转换时,使用"日期/时间转换"(Date/Time Converter)步骤可以确保正确处理时间戳。 - 使用"字段检查器"(Field Inspector)或"预览"功能来验证时间戳数据在转换过程中的完整性和准确性。 5. **...
下面我们将详细介绍如何使用JavaScript将时间戳转换为可读的时间格式。 #### JavaScript中获取时间戳 在JavaScript中,可以通过以下几种方式获取时间戳: 1. **使用`Date.now()`**:这个方法返回从1970年1月1日00...
在本项目中,我们关注的是JS如何实现时间戳转换工具,这在不连外网的办公环境中尤其有用,因为它可以帮助开发者和用户在本地进行时间相关的计算和转换。 时间戳,通常指的是自1970年1月1日(UTC/GMT的午夜)开始所...
在日常开发中,还应关注JavaScript中时间与日期操作的其他技巧和细节,例如时间间隔的计算、日期的比较、格式化输出等,这些技巧的灵活运用可以帮助我们更好地处理时间相关的数据。同时,针对常见的JavaScript编程中...
时间戳转换为时间年月日时间的JS函数知识点: 在JavaScript编程中,时间戳是指从1970年1月1日(UTC时间)开始所经过的毫秒数。在实际开发过程中,我们经常需要将时间戳转换为人们易于阅读和理解的日期格式。这就...
在JavaScript中,没有内置的方法直接将时间戳转换为日期时间字符串,但我们可以使用`Date`对象构造函数并结合模板字符串来达到目的: ```javascript let timestamp = Math.floor(Date.now() / 1000); // JavaScript...
这个扩展在日常工作中非常实用,特别是在处理与时间相关的数据时。 【描述】中提到,"时间戳日期Chrome" 扩展是一个便捷的工具,可以方便地处理时间戳与日期时间之间的转换。对于开发者和数据分析人员来说,能够...
总的来说,理解并熟练掌握JavaScript中的日期和时间戳转换,对前端开发者来说至关重要,因为它在数据展示、数据存储以及与后端交互等方面都发挥着关键作用。通过以上内容,你应该能够实现标题和描述中提到的功能,并...
这些语言中的时间戳转换通常涉及到将Unix时间戳转换为本地时间格式,或者反之亦然。 ### 总结 通过以上介绍可以看出,在MySQL中进行日期和时间戳之间的转换是非常方便的,只需要使用几个简单的内置函数即可实现。...
本篇将详细讨论如何使用JavaScript将13位时间戳转换为易于阅读的日期和时间格式。 1. JavaScript内置日期对象:`Date` JavaScript提供了内置的`Date`对象,可以用于处理日期和时间。创建一个`Date`对象并传入...
3. JavaScript中的字符串与时间戳转换: - `new Date()` 构造函数用于将字符串转换为日期对象。 ```javascript var dateString = "2023-03-15T10:30:00"; var dateObject = new Date(dateString); ``` - `...