就最近遇到的几个有关日期时间的方法进行记录。
1、js获取当前系统时间的格式转换问题:
//获取当前系统时间
var myDate = new Date();
var mytime=myDate.toLocaleTimeString();
console.log(mytime);//结果为 "下午8:18:32"
如果需要将上下午12小时制更改为全天24小时制,则可以通过以下方法获取:
function getNowFormatTime() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var hour = date.getHours();
var minute = date.getMinutes();
var seconds = date.getSeconds();
if (hour >= 1 && hour <= 9) {
hour = "0" + hour;
}
if (minute >= 0 && minute <= 9) {
minute = "0" + minute;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
var currenttime = hour + seperator2 + minute + seperator2 + seconds;
return currenttime;
}
var time = getNowFormatTime();
console.log(time);//结果为 "20:25:06"
2、将当前系统日期时间与目标日期时间进行比较,判断目标时间是否已经超过当前系统时间。
var comp = function(date) {
var now = new Date;
var d = new Date(date);
if (now > d) {
alert("当前时间大于目标时间");
} else if (now < d) {
alert("当前时间小于目标时间");
} else {
alert("当前时间等于目标时间");
}
}
comp("2017-11-30 16:16:13");
3、倒计时(可用于各种需要倒计时的场合中,比如考试系统考试时对考试时间的倒计时)
//先将倒计时总时间转换成秒数
//例如倒计时时间为30分钟
var totalsecond = 30*60;
//封装函数
function deadlinetime(){
totalsecond--;
//当剩余秒数为0时提交试卷
if(totalsecond == 0){
alert("时间已经结束!");
//do something
}
//剩余小时
var remainhour = Math.floor(totalsecond/3600);
//剩余分钟
var remainminite = Math.floor((totalsecond-3600*remainhour)/60);
//剩余秒数
var remainsecond = Math.floor(totalsecond-3600*remainhour-60*remainminite);
//页面赋值显示操作,body部分是三个label标签
$("#remainhour").text(remainhour+"小时");
$("#remainminite").text(remainminite + "分钟");
$("#remainsecond").text(remainsecond + "秒");
}
//定时器判断是否已经到结束时间,其间隔必须是1000毫秒,也就是一秒,这样才能和deadlinetime函数中的"totalsecond--"相对应起来.
var deadlinesetTime = setInterval(deadlinetime,1000);
以上。