关于js中几个时间的常用操作,请指点

烤火的鱼 2009-11-22 02:43:45
1.如何将字符串转换为时间,如:
var s1 = '2009-10-1 00:00:00';
var dt1 = new Date(s1);
alert(dt1);
测试时,报错,结果为"NaN",郁闷中,网上都是去当前时间 var dt=new Date(),我希望把一个标准的字符串转换为时间然后计算.

2.如何把时间部分增加,如将秒数+1,类似于C#中的:
dt=dt.AddSeconds(1);
setHour之类要解决进位问题,如秒/分超过60要进位

3.如何得到两个时间的差额(单位:秒)
dt1:2009-1-1 00:00:00
dt2:2009-1-1 00:01:50
希望的结果为110.
...全文
51 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
烤火的鱼 2009-12-07
  • 打赏
  • 举报
回复
I服了U,C#习惯了,JS的内置函数功能太弱
xmliy 2009-11-22
  • 打赏
  • 举报
回复
再更正一下:
2、dt1.setSeconds(dt1.getSeconds() + 1);
此外,还有setMinutes, setHours,setDate,setMonth,setYear都是可以自动进位的
xmliy 2009-11-22
  • 打赏
  • 举报
回复
更正一下:
2、var dt = dt1.setSeconds(dt1.getSeconds() + 1);
xmliy 2009-11-22
  • 打赏
  • 举报
回复
1、var dt1 = new Date(2009,9,1,0,0,0);
2、var dt = dt1.setSeconds(dt1.getSeconds + 1);
3、var diff = ( dt2 - dt1 ) / 1000;
sohighthesky 2009-11-22
  • 打赏
  • 举报
回复
3.

var s1 = '2009-1-1 00:00:00';
s1=s1.replace(/-/,' ');
var dt1 = new Date(s1);
var s2="2009-1-1 00:01:50"
s2=s2.replace(/-/,' ');
var dt2=new Date(s2);
var span=(dt2-dt1)/1000;//毫秒相减,除以1000得到 秒数
alert(span);
sohighthesky 2009-11-22
  • 打赏
  • 举报
回复
2.

var s1 = '2009-10-1 00:00:00';
s1=s1.replace(/-/,' ');
var dt1 = new Date(s1);

Date.prototype.add = function(part,num){
var datecopy;
var ms = this.getTime();
num = parseInt(num);
switch(part){
case "ms":
ms += num;
break;
case "ss":
ms += 1000 * num;
break;
case "mi":
ms += 60 * 1000 * num;
break;
case "hh":
ms += 60 * 60 * 1000 * num;
break;
case "dd":
ms += 24 * 60 * 60 * 1000 * num;
break;
case "wk":
ms += 7 * 24 * 60 * 60 * 1000 * num;
break;
case "mm":
datecopy = new Date(Date.parse(this));
datecopy.setFullYear(this.getFullYear() + Math.floor((this.getMonth() + num) / 12));
var mth = (this.getMonth() + num) % 12;
if(mth < 0)mth += 12;
datecopy.setMonth(mth);
break;
case "qq":
datecopy = new Date(Date.parse(this));
datecopy.setFullYear(this.getFullYear() + Math.floor((this.getMonth() + 3 * num) / 12));
var mth = (this.getMonth() + 3 * num) % 12;
if(mth < 0)mth += 12;
datecopy.setMonth(mth);
break;
case "yy":
datecopy = new Date(Date.parse(this));
datecopy.setFullYear(this.getFullYear() + num);
break;
}
if(datecopy == null)
return new Date(ms);
else
return datecopy;
}
dt1=dt1.add("ss",1);//添加1秒
alert(dt1);
sohighthesky 2009-11-22
  • 打赏
  • 举报
回复
1.

var s1 = '2009-10-1 00:00:00';
s1=s1.replace(/-/,' ');
var dt1 = new Date(s1);
alert(dt1);

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧