Js 的时间处理

时间:2021-07-14 22:07:35
现在遇到的是这样的一个问题:在当前页得到一个时间startTime=8:10 和EndTIme=8:40,这两个字段提交到下一个页面,并且对这个数据进行如下处理:startTime减少半个小时,EndTime页需要减少半个小时,求怎么做?

5 个解决方案

#1



function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

#2


引用 1 楼 jslang 的回复:

function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

我输入的是16:30得到的是16:0,原理正确,格式不对,其他的都行,为什么16:30得到的是16:0缺少一位

#3


引用 2 楼 yangpiaoluotianya 的回复:
Quote: 引用 1 楼 jslang 的回复:


function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

我输入的是16:30得到的是16:0,原理正确,格式不对,其他的都行,为什么16:30得到的是16:0缺少一位


function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+("0"+time.getMinutes()).slice(-2);
}
alert(timect("8:30"));

#4


构建data变量。
或者写个模拟60进制的函数,包含加减法即可

#5


引用 4 楼 u010087908 的回复:
构建data变量。
或者写个模拟60进制的函数,包含加减法即可

目前按照一楼的方法,稍微修改了一下,可以实现我的目标了。

function timect(str) {
        var da = str.match(/\d+/g);
        var time = new Date(0, 0, 0, parseInt(da[0], 10), parseInt(da[1], 10) - 30, 0);
        if (time.getMinutes() == 0)
        {
            return time.getHours() + ":" + "00";
        }
        else {
            return time.getHours() + ":" + time.getMinutes();
        }
    }


#1



function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

#2


引用 1 楼 jslang 的回复:

function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

我输入的是16:30得到的是16:0,原理正确,格式不对,其他的都行,为什么16:30得到的是16:0缺少一位

#3


引用 2 楼 yangpiaoluotianya 的回复:
Quote: 引用 1 楼 jslang 的回复:


function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+time.getMinutes();
}
alert(timect("8:10"));

我输入的是16:30得到的是16:0,原理正确,格式不对,其他的都行,为什么16:30得到的是16:0缺少一位


function timect(str) {
var da = str.match(/\d+/g);
var time = new Date(0,0,0,parseInt(da[0],10),parseInt(da[1],10)-30,0);
return time.getHours()+":"+("0"+time.getMinutes()).slice(-2);
}
alert(timect("8:30"));

#4


构建data变量。
或者写个模拟60进制的函数,包含加减法即可

#5


引用 4 楼 u010087908 的回复:
构建data变量。
或者写个模拟60进制的函数,包含加减法即可

目前按照一楼的方法,稍微修改了一下,可以实现我的目标了。

function timect(str) {
        var da = str.match(/\d+/g);
        var time = new Date(0, 0, 0, parseInt(da[0], 10), parseInt(da[1], 10) - 30, 0);
        if (time.getMinutes() == 0)
        {
            return time.getHours() + ":" + "00";
        }
        else {
            return time.getHours() + ":" + time.getMinutes();
        }
    }