JS时间戳与⽇期格式互相转换的简单⽅法⽰例
前端时间格式转时间戳的⼏种⽅法
<script type="text/javascript">
var date=new Date();
console.log(date);//Wed Feb 13 2019 11:40:45 GMT+0800 (中国标准时间)
// 1:不推荐这种办法,毫秒级别的数值被转化为000
var timeStamp1=Date.parse(date);
console.log(timeStamp1);//1550029245000
// 2:通过valueOf()函数返回指定对象的原始值获得准确的时间戳值
var timeStamp2=date.valueOf();
console.log(timeStamp2);//1550029245434
/
/ 3:通过原型⽅法直接获得当前时间的毫秒值,准确
var Time();
console.log(timeStamp3);//1550029245434
// 4:将时间转化为⼀个number类型的数值,即时间戳
var timeStamp4=Number(date);
console.log(timeStamp4);//1550029245434
</script>
JS和jQuery⽤了⼀段时间,最近发现他们没有⾃带的时间戳格式化函数,于是综合⽹上相关的时间戳格式化函数,⾃⼰写了⼀个时间戳格式化函数DateToTime,这个函数提供了多种格式化样式:
Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m⽉d⽇,Y年m⽉d⽇ H:i:s
这⾥的时间有时仅输⼊Y-m-d H:i也是可以使⽤的
/**
* [TimeToDate时间戳转换为⽇期]
* @param {[type]} unixTime [时间戳]
* @param {String} type    [Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m⽉d⽇,Y年m⽉d⽇ H:i:s]
*/
function TimeToDate(unixTime,type="Y-M-D H:i:s"){
var date = new Date(unixTime * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var datetime = "";
unix时间戳转换日期格式
datetime += FullYear() + type.substring(1,2);
datetime += (Month()+1 < 10 ? '0'+(Month()+1) : Month()+1) + type.substring(3,4);
datetime += (Date() < 10 ? '0'+(Date()) : Date());
if (type.substring(5,6)) {
if (type.substring(5,6).charCodeAt() > 255) {
datetime += type.substring(5,6);
if (type.substring(7,8)) {
datetime += " " + (Hours() < 10 ? '0'+(Hours()) : Hours());
if (type.substring(9,10)) {
datetime += type.substring(8,9) + (Minutes() < 10 ? '0'+(Minutes()) : Minutes());
if (type.substring(11,12)) {
datetime += type.substring(10,11) + (Seconds() < 10 ? '0'+(Seconds()) : Seconds());
};
};
};
}else{
datetime += " " + (Hours() < 10 ? '0'+(Hours()) : Hours());
if (type.substring(8,9)) {
datetime += type.substring(7,8) + (Minutes() < 10 ? '0'+(Minutes()) : Minutes());
if (type.substring(10,11)) {
datetime += type.substring(9,10) + (Seconds() < 10 ? '0'+(Seconds()) : Seconds());
};
};
};
};
return datetime;
}
TimeToDate("1515640111");    //2018-01-11 11:08:31
TimeToDate("1515640111","Y-m-d");    //2018-01-11
TimeToDate("1515640111","Y-m-d H:i");    //2018-01-11 11:08
TimeToDate("1515640111","Y-m-d H:i:s");    //2018-01-11 11:08:31
TimeToDate("1515640111","Y/m/d");    //2018/01/11
TimeToDate("1515640111","Y/m/d H:i:s");    //2018/01/11 11:08:31
TimeToDate("1515640111","Y年m⽉d⽇");    //2018年01⽉11⽇
TimeToDate("1515640111","Y年m⽉d⽇ H:i:s");    //2018年01⽉11⽇ 11:08:31
/
**
* [DateToTime ⽇期转换时间戳]
* @param {[type]} day [⽇期格式,仅⽀持标准格式]
*/
function DateToTime(day){
// re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day); // 原
re = /(\d{4})(?:\D?(\d{1,2})(?:\D?(\d{1,2}))?[^\d\s]?)?(?:\s+(\d{1,2})\D?(\d{1,2})\D?(\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;
}
DateToTime("2018-01-11 11:08:31");
DateToTime("2018-01-11");
DateToTime("2018年01⽉11⽇ 11时08分31秒");
DateToTime("2018");
补充时间戳与⽇期相互转换:
function TimeToDate(date,format) {
format = format || 'YYYY-MM-DD hh:mm:ss';
var dateTest = (/^(-)?\d{1,10}$/.test(date) || /^(-)?\d{1,13}$/.test(date));
if(/^[1-9]*[1-9][0-9]*$/.test(date) && dateTest){
var vdate = parseInt(date);
if (/^(-)?\d{1,10}$/.test(vdate)) {
vdate = vdate * 1000;
} else if (/^(-)?\d{1,13}$/.test(vdate)) {
vdate = vdate * 1000;
} else if (/^(-)?\d{1,14}$/.test(vdate)) {
vdate = vdate * 100;
} else {
alert("时间戳格式不正确");
return;
}
var setdate = new Date(vdate);
return parse({FullYear(), MM:Month()+1), DD:Date()) , hh:Hours()), mm:Minutes()), ss:Seconds()) }, format); }else {
//将⽇期转换成时间戳
var arrs = date.match(/\w+|d+/g),
newdate = new Date(arrs[0],parseInt(arrs[1])-1,arrs[2],arrs[3]||0,arrs[4]||0,arrs[5]||0),
timeStr = Time() / 1000);
return timeStr;
}
function parse(ymdhms, format) {
var regymdzz = "YYYY|MM|DD|hh|mm|ss|zz";
place(new RegExp(regymdzz,"g"), function(str, index) {
return str == "zz" ? "00":digit(ymdhms[str]);
});
};
function digit(num) {
return num < 10 ? "0" + (num | 0) :num;
};
};
总结
到此这篇关于JS时间戳与⽇期格式互相转换的⽂章就介绍到这了,更多相关JS时间戳与⽇期格式互相转换内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。