方法目录
n天后的日期
/*
参数 number 传入数字 如 7
返回结果 当前日期 N 天后的 年 / 月 / 日 时 : 分 : 秒
*/
publicDateDistance(7) // 2019/10/17 17:56:33
倒计时
/*
参数 timestamp 传入时间 如:2020/1/1 00:00:00
返回结果 年 / 月 / 日 时 : 分 : 秒
ps:需要循环执行
*/
publicCountdownDate('2020/1/1 00:00:00') // 82天6小时2分钟55秒
时间戳转换日期
/*
参数 timestamp 传入时间戳 如:1577808000000
返回结果 年 / 月 / 日 时 : 分 : 秒
*/
publicTimestampDate('1577808000000') // 2020/01/01 00:00:00
日期转换时间戳
/*
参数 timestamp 传入时间 如:2020/1/1 00:00:00
参数 type 传入1 返回13位时间戳 传入2 返回10位时间戳
返回结果 时间戳 如: 1577808000000 或 1577808000
*/
publicDateTimestamp('2020/1/1 00:00:00','13') // 1577808000000
publicDateTimestamp('2020/1/1 00:00:00','10') // 1577808000
特殊事件格式2019-01-03T00:18:21.000+0000转化成正常格式
/*
参数 date 传入时间戳 如:2019-01-03T00:18:21.000+0000
返回结果 年 / 月 / 日 时 : 分 : 秒
*/
publicRenderTimeDate('2019-01-03T00:18:21.000+0000')
获取时间日期 星期几
/*
参数 now 传入 时间 如: 2020/1/1 00:00:00
返回结果 星期几
*/
publicWeekDate('2020/1/1 00:00:00') // 星期三
封装的方法
// 几天后的 年 / 月 / 日 时 : 分 : 秒
/*
参数 number 传入数字 如 7
返回结果 当前日期 N 天后的 年 / 月 / 日 时 : 分 : 秒
*/
function publicDateDistance(number){
if(number){
let timestamp = Math.ceil(new Date().getTime()/1000) //当前时间戳
let seventimes = 24*60*60*Number(number) //N天时间戳
let sevent = timestamp+seventimes; // 相加的时间戳
let date = new Date(parseInt(sevent) * 1000) //获得13位的时间戳
let Y = date.getFullYear() + '/'; //年
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '/'; //月
let D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '; //日
let h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'; //时
let m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'; //分
let s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds()); //秒
let DistanceDate = String(Y+M+D+h+m+s)
return DistanceDate
}else{
alert('publicDateDistance(N天后的时间)方法没有找到参数')
}
}
// 倒计时时间
/*
参数 timestamp 传入时间 如:2020/1/1 00:00:00
返回结果 年 / 月 / 日 时 : 分 : 秒
ps:需要循环执行
*/
function publicCountdownDate(timestamp){
if(timestamp){
let publictime;
let endDate = new Date(timestamp).getTime() //要倒计时的时间
let nowDate = new Date().getTime() //当前时间
// 相差的总秒数
let totalSeconds = parseInt((endDate - nowDate) / 1000)
// 相差的总天数
let days = Math.floor(totalSeconds/(60*60*24))
// 取出天的余数
let modulo = totalSeconds % (60*60*24)
// 相差的小时数
let hours = Math.floor(modulo/(60*60))
// 取出小时的余数
modulo = modulo % (60*60)
// 相差的分钟
let minutes = Math.floor(modulo /60)
// 取出最后的秒数
let seconds = modulo % 60
// 如果分钟<=0 并且 小时<=0并且 天数<=0 并且 秒数 <=0
if(minutes<=0 && hours<=0 && hours<=0 && days <= 0 && seconds<=0){
publictime = false
//如果 小时<=0 并且 天数<=0 并且 分钟 大于= 0 并且 秒 大于 = 1
}else if(hours<=0 && days <= 0 && minutes<=0 && seconds >=1){
if(seconds<10){
publictime = '0'+seconds +'秒'
}else{
publictime = seconds +'秒'
}
setTimeout(function(){
publicCountdownDate(timestamp)
},1000)
}else if(hours<=0 && days <= 0 && minutes>=1 && seconds >=0){
if(seconds<10){
publictime = minutes + "分钟" +'0'+seconds +'秒'
}else{
publictime = minutes + "分钟" +seconds +'秒'
}
setTimeout(function(){
publicCountdownDate(timestamp)
},1000)
}else if(days<=0 ){
if(seconds<10){
publictime = hours + "小时" + minutes + "分钟"+ '0' + seconds +'秒'
}else{
publictime = hours + "小时" + minutes + "分钟"+seconds +'秒'
}
setTimeout(function(){
publicCountdownDate(timestamp)
},1000)
}else{
if(seconds<10){
publictime = days + "天" + hours + "小时" + minutes + "分钟"+ '0' +seconds +'秒'
}else{
publictime = days + "天" + hours + "小时" + minutes + "分钟"+seconds +'秒'
}
setTimeout(function(){
publicCountdownDate(timestamp)
},1000)
}
return publictime
}else{
alert('publicCountdownDate(倒计时)方法没有找到参数')
}
}
// 时间戳转换日期
/*
参数 timestamp 传入时间戳 如:13952200000
返回结果 年 / 月 / 日 时 : 分 : 秒
*/
function publicTimestampDate(timestamp){
if(timestamp){
let date;
if(timestamp.toString().length <= 10){
date = new Date(parseInt(timestamp) * 1000) //获得13位的时间戳
}else{
date = new Date(parseInt(timestamp))
}
let Y = date.getFullYear() + '/'; //年
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '/'; //月
let D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '; //日
let h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'; //时
let m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'; //分
let s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds()); //秒
let TimestampDate = String(Y+M+D+h+m+s)
return TimestampDate
}else{
alert('publicTimestampDate(时间戳转换日期)没有传入参数')
}
}
// 日期转换时间戳
/*
参数 timestamp 传入时间 如:2020/1/1 00:00:00
参数 type 传入1 返回13位时间戳 传入2 返回10位时间戳
返回结果 时间戳 如: 1577808000000 或 1577808000
*/
function publicDateTimestamp(dateChange,type){
if(dateChange){
if(type == 13){
let date = dateChange.substring(0,19);
date = dateChange.replace(/-/g,'/');
let timestamp = new Date(date).getTime();
return timestamp
}else if(type == 10){
let date = dateChange.substring(0,19);
date = dateChange.replace(/-/g,'/');
let timestamp = new Date(date).getTime() / 1000;
return timestamp
}else{
alert('type参数不正确 请检查')
}
}else{
alert('publicDateTimestamp(日期转换时间戳)没有传入参数')
}
}
// 特殊事件格式2019-01-03T00:18:21.000+0000转化成正常格式
/*
参数 timestamp 传入时间戳 如:2019-01-03T00:18:21.000+0000
返回结果 年 / 月 / 日 时 : 分 : 秒
*/
function publicRenderTimeDate(date) {
let numdate = date
if(numdate){
var dateee = new Date(numdate).toJSON();
return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
}else{
alert('publicRenderTimeDate(特殊事件格式转换)没有传入参数')
}
}
// 正常格式 2020/1/1 00:00:00 转化成特殊事件格式2019-01-03T00:18:21.000+0000
// 获取时间日期 星期几
/*
参数 now 传入 时间 如: 2020/1/1 00:00:00
返回结果 星期几
*/
function publicWeekDate(now){
if(now){
let weekDate = new Date(now)
let nowTime = publicRenderTimeDate(weekDate); // 使用publicRenderTimeDate方法
let date = nowTime.substring(0,10);//截取日期
let weekDay = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
let myDate = new Date(Date.parse(date));
let wek = weekDay[myDate.getDay()]
return wek
}else{
alert('publicWeekDate(获取星期几)没有传入参数')
}
}