
给你个逻辑
获取当前时间
减去一个小时(转换成时间戳)
从第二步得到的时间戳开始计算,递归加5分钟,push到一个数组并返回
大的逻辑就是这,剩下的就是实现了(注意时间戳到时间的转换)
<script>
function tab(dayNum){
var oDate = new Date(); //获取当前时间
var dayArr = [oDate]; //定义一个数组存储所以时间
for(var i=0;i<dayNum;i++){
dayArrpush(new Date(oDategetFullYear(),oDategetMonth(),oDategetDate() + i)); //把未来几天的时间放到数组里
}
return dayArr; //返回一个数组。
}
alert(tab(5)); //函数调用。
</script>
<script>
function DateAdd(n){
return new Date(new Date()getTime()+n2460601000);
}
alert("三天后:"+DateAdd(3)toLocaleDateString());
alert("100天后:"+DateAdd(100)toLocaleDateString());
</script>
如果要增加的时间不是多少天,而是多少小时、分钟、秒或者月、年等,只要把它转化为毫秒数,再加上当前时间的毫秒数,然后用new Date()转换为时间即可。
时间减少(即过去的某个时间)的原理也一样的,用减法即可。
可以获取当前时间,如下面一个求倒计时的例子,可以更清楚的看出如何获取当前时间和获取两时间差
<html>
<head></head>
<body>
<input id="nowtime" type="text" readonly="readonly" style="border:none; background:#ccc; line-height:18px; height:18px; width:300px; text-align:center;" />
<script type="text/javascript">
function addzero(num){
if(num<10)num="0"+num;
return num;
}
function date(){
var spfst=new Date(2013,1,10);//获取结束时间
var time=new Date();//获取当前时间
var left=spfstgetTime()-timegetTime();//获取两时间差,这个时间的差值是毫秒,所以下面需要将毫秒进行转化,转化成所需要的月、天、时、分、秒
var a=Mathfloor(left/(2436001000));
var b=addzero(Mathfloor((left%(2436001000))/(36001000)));
var c=addzero(Mathfloor(((left%(2436001000))%(36001000))/(601000)));
var x=addzero(Mathfloor(((left%(2436001000))%(36001000)%(601000))/1000));
documentgetElementById("nowtime")value=("距春节还有:"+a+"天"+b+"时"+c+"分"+x+"秒");
}
date()
setInterval("date()",320)
</script>
</body>
</html>
牙叔教程 简单易学
877-0
手机和服务器时间尽可能一致
手机一般默认设置 使用网络提供的时间
这个时间和服务器的时间一定是有误差的
我们还要把这个误差考虑进去
那么, 这个误差怎么算呢
当手机向服务器查询一次当前时间,
会产生一个手机时刻A
服务器会返回一个服务器时间
服务器时间 - 网络从手机到服务器的时长 = 手机时刻B(以服务器为标准)
手机时间误差 = 手机时刻B - 手机时刻A
用脚本引擎启动一个单独的脚本, 每隔一定时间, 去校正一下两个值, 并且用本地存储存起来
每当要获取服务器的时间, 我们就可以读取本地存储, 直接用公式计算出服务器的时间, 而不用去请求服务器
<!DOCTYPE html>
<html>
<head>
<meta >
Js获取当前日期时间及其它 *** 作
var myDate = new Date();
myDategetYear(); //获取当前年份(2位)
myDategetFullYear(); //获取完整的年份(4位,1970-)
myDategetMonth(); //获取当前月份(0-11,0代表1月)
myDategetDate(); //获取当前日(1-31)
myDategetDay(); //获取当前星期X(0-6,0代表星期天)
myDategetTime(); //获取当前时间(从197011开始的毫秒数)
myDategetHours(); //获取当前小时数(0-23)
myDategetMinutes(); //获取当前分钟数(0-59)
myDategetSeconds(); //获取当前秒数(0-59)
myDategetMilliseconds(); //获取当前毫秒数(0-999)
myDatetoLocaleDateString(); //获取当前日期
var mytime=myDatetoLocaleTimeString(); //获取当前时间
myDatetoLocaleString( ); //获取日期与时间
日期时间脚本库方法列表
DateprototypeisLeapYear 判断闰年
DateprototypeFormat 日期格式化
DateprototypeDateAdd 日期计算
DateprototypeDateDiff 比较日期差
DateprototypetoString 日期转字符串
DateprototypetoArray 日期分割为数组
DateprototypeDatePart 取日期的部分信息
DateprototypeMaxDayOfDate 取日期所在月的最大天数
DateprototypeWeekNumOfYear 判断日期所在年的第几周
StringToDate 字符串转日期型
IsValidDate 验证日期有效性
CheckDateTime 完整日期时间检查
daysBetween 日期天数差
js代码:
//---------------------------------------------------
// 判断闰年
//---------------------------------------------------
DateprototypeisLeapYear = function()
{
return (0==thisgetYear()%4&&((thisgetYear()%100!=0)||(thisgetYear()%400==0)));
}
//---------------------------------------------------
// 日期格式化
// 格式 YYYY/yyyy/YY/yy 表示年份
// MM/M 月份
// W/w 星期
// dd/DD/d/D 日期
// hh/HH/h/H 时间
// mm/m 分钟
// ss/SS/s/S 秒
//---------------------------------------------------
DateprototypeFormat = function(formatStr)
{
var str = formatStr;
var Week = ['日','一','二','三','四','五','六'];
str=strreplace(/yyyy|YYYY/,thisgetFullYear());
str=strreplace(/yy|YY/,(thisgetYear() % 100)>9(thisgetYear() % 100)toString():'0' + (thisgetYear() % 100));
str=strreplace(/MM/,thisgetMonth()>9thisgetMonth()toString():'0' + thisgetMonth());
str=strreplace(/M/g,thisgetMonth());
str=strreplace(/w|W/g,Week[thisgetDay()]);
str=strreplace(/dd|DD/,thisgetDate()>9thisgetDate()toString():'0' + thisgetDate());
str=strreplace(/d|D/g,thisgetDate());
str=strreplace(/hh|HH/,thisgetHours()>9thisgetHours()toString():'0' + thisgetHours());
str=strreplace(/h|H/g,thisgetHours());
str=strreplace(/mm/,thisgetMinutes()>9thisgetMinutes()toString():'0' + thisgetMinutes());
str=strreplace(/m/g,thisgetMinutes());
str=strreplace(/ss|SS/,thisgetSeconds()>9thisgetSeconds()toString():'0' + thisgetSeconds());
str=strreplace(/s|S/g,thisgetSeconds());
return str;
}
//+---------------------------------------------------
//| 求两个时间的天数差 日期格式为 YYYY-MM-dd
//+---------------------------------------------------
function daysBetween(DateOne,DateTwo)
{
var OneMonth = DateOnesubstring(5,DateOnelastIndexOf ('-'));
var OneDay = DateOnesubstring(DateOnelength,DateOnelastIndexOf ('-')+1);
var OneYear = DateOnesubstring(0,DateOneindexOf ('-'));
var TwoMonth = DateTwosubstring(5,DateTwolastIndexOf ('-'));
var TwoDay = DateTwosubstring(DateTwolength,DateTwolastIndexOf ('-')+1);
var TwoYear = DateTwosubstring(0,DateTwoindexOf ('-'));
var cha=((Dateparse(OneMonth+'/'+OneDay+'/'+OneYear)- Dateparse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
return Mathabs(cha);
}
//+---------------------------------------------------
//| 日期计算
//+---------------------------------------------------
DateprototypeDateAdd = function(strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's' :return new Date(Dateparse(dtTmp) + (1000 Number));
case 'n' :return new Date(Dateparse(dtTmp) + (60000 Number));
case 'h' :return new Date(Dateparse(dtTmp) + (3600000 Number));
case 'd' :return new Date(Dateparse(dtTmp) + (86400000 Number));
case 'w' :return new Date(Dateparse(dtTmp) + ((86400000 7) Number));
case 'q' :return new Date(dtTmpgetFullYear(), (dtTmpgetMonth()) +
Number3, dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
case 'm' :return new Date(dtTmpgetFullYear(), (dtTmpgetMonth()) +
Number, dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
case 'y' :return new Date((dtTmpgetFullYear() + Number),
dtTmpgetMonth(), dtTmpgetDate(), dtTmpgetHours(), dtTmpgetMinutes(),
dtTmpgetSeconds());
}
}
//+---------------------------------------------------
//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串
//+---------------------------------------------------
DateprototypeDateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' )//如果是字符串转换为日期型
{
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's' :return parseInt((dtEnd - dtStart) / 1000);
case 'n' :return parseInt((dtEnd - dtStart) / 60000);
case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
case 'w' :return parseInt((dtEnd - dtStart) / (86400000 7));
case 'm' :return (dtEndgetMonth()+1)+((dtEndgetFullYear()-dtStartgetFullYear())12) - (dtStartgetMonth()+1);
case 'y' :return dtEndgetFullYear() - dtStartgetFullYear();
}
}
//+---------------------------------------------------
//| 日期输出字符串,重载了系统的toString方法
//+---------------------------------------------------
DateprototypetoString = function(showWeek)
{
var myDate= this;
var str = myDatetoLocaleDateString();
if (showWeek)
{
var Week = ['日','一','二','三','四','五','六'];
str += ' 星期' + Week[myDategetDay()];
}
return str;
}
//+---------------------------------------------------
//| 日期合法性验证
//| 格式为:YYYY-MM-DD或YYYY/MM/DD
//+---------------------------------------------------
function IsValidDate(DateStr)
{
var sDate=DateStrreplace(/(^\s+|\s+$)/g,''); //去两边空格;
if(sDate=='') return true;
//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''
//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式
var s = sDatereplace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');
if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
{
var t=new Date(sDatereplace(/\-/g,'/'));
var ar = sDatesplit(/[-/:]/);
if(ar[0] != tgetYear() || ar[1] != tgetMonth()+1 || ar[2] != tgetDate())
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
}
else
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
return true;
}
//+---------------------------------------------------
//| 日期时间检查
//| 格式为:YYYY-MM-DD HH:MM:SS
//+---------------------------------------------------
function CheckDateTime(str)
{
var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
var r = strmatch(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
if(dgetFullYear()!=r[1])return false;
if(dgetMonth()!=r[2])return false;
if(dgetDate()!=r[3])return false;
if(dgetHours()!=r[4])return false;
if(dgetMinutes()!=r[5])return false;
if(dgetSeconds()!=r[6])return false;
return true;
}
//+---------------------------------------------------
//| 把日期分割成数组
//+---------------------------------------------------
DateprototypetoArray = function()
{
var myDate = this;
var myArray = Array();
myArray[0] = myDategetFullYear();
myArray[1] = myDategetMonth();
myArray[2] = myDategetDate();
myArray[3] = myDategetHours();
myArray[4] = myDategetMinutes();
myArray[5] = myDategetSeconds();
return myArray;
}
//+---------------------------------------------------
//| 取得日期数据信息
//| 参数 interval 表示数据类型
//| y 年 m月 d日 w星期 ww周 h时 n分 s秒
//+---------------------------------------------------
DateprototypeDatePart = function(interval)
{
var myDate = this;
var partStr='';
var Week = ['日','一','二','三','四','五','六'];
switch (interval)
{
case 'y' :partStr = myDategetFullYear();break;
case 'm' :partStr = myDategetMonth()+1;break;
case 'd' :partStr = myDategetDate();break;
case 'w' :partStr = Week[myDategetDay()];break;
case 'ww' :partStr = myDateWeekNumOfYear();break;
case 'h' :partStr = myDategetHours();break;
case 'n' :partStr = myDategetMinutes();break;
case 's' :partStr = myDategetSeconds();break;
}
return partStr;
}
以上就是关于大神求助一个js问题,获取当前时间一个小时前每隔5分钟的时间数组全部的内容,包括:大神求助一个js问题,获取当前时间一个小时前每隔5分钟的时间数组、js获取当前时间以及未来一星期(或者可以规定天数)的时间、JavaScript怎么获取当前时间+一个固定时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)