Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期日(24小时)减去日期_Javascript_Date_Datetime_Momentjs - Fatal编程技术网

Javascript 日期日(24小时)减去日期

Javascript 日期日(24小时)减去日期,javascript,date,datetime,momentjs,Javascript,Date,Datetime,Momentjs,我需要从我得到的日期中去掉一天,即24小时减去23:47:16,我必须得到12:44。我试着把日期变量分解成一个字符串,然后把它拿走,但我就是找不到算法,也许现在就可以了,请告诉我 24:00:00(减去)(常数日期或常数格式时间)= (在我的例子中是24:00:00-23:47:16=12:44) 您可以使用矩.diff方法 const datetime='2020-02-20 23:47:16'; const your_time=时刻(datetime); const close_time

我需要从我得到的日期中去掉一天,即24小时减去23:47:16,我必须得到12:44。我试着把日期变量分解成一个字符串,然后把它拿走,但我就是找不到算法,也许现在就可以了,请告诉我

24:00:00(减去)(常数日期或常数格式时间)=

(在我的例子中是24:00:00-23:47:16=12:44)


您可以使用矩
.diff
方法

const datetime='2020-02-20 23:47:16';
const your_time=时刻(datetime);
const close_time=时刻(datetime).endOf('day')
设h=关闭时间.diff(您的时间,'hours')
设m=关闭时间.diff(您的时间,'minutes')
console.log(h+':'+m)

如果您只想从24:00:00减去h:mm:ss格式的时间,然后将其转换为一些公共基数(例如秒),减去,然后再转换回h:mm:ss,例如

//将h:mm:ss格式的时间转换为秒
功能到秒(时间){
设b=time.split(“:”);
返回b[0]*3600+b[1]*60+b[2]*1;
}
//将秒转换为h:mm:ss格式
函数到时间(秒){
返回(secs/3600 | 0)+':'+
(''+((secs%3600)/60 | 0)).padStart(2,'0')+':'+
(''+(secs%60)).padStart(2,'0');
}
//今晚是午夜时分
让z=n=>(n试试这个:

var date1=时刻(“2020-03-19 23:47:16”);
var date2=时刻(“2020-03-19 24:00:00”);
var小时=日期2.diff(日期1,“小时”);
var mins=力矩
.utc(时刻(日期2,“HH:mm:ss”).diff(时刻(日期1,“HH:mm:ss”))
.格式(“mm”);
var秒=力矩
.utc(时刻(日期2,“HH:mm:ss”).diff(时刻(日期1,“HH:mm:ss”))
.格式(“ss”);
控制台日志(小时);
控制台日志(分钟);
console.log(秒);

我需要做一个减法,你想减掉哪一个?不清楚你的意思,如果你想现在(或其他日期)-24小时,只需使用
get*
方法,并创建一个新日期
新日期(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours()-24)
。等等,直到第二秒。同样,通过在
分钟
上执行
'0'+
等,它不是一个日期对象:/I我需要得到这个24:00:00(负)(const-date或const-formattedTime)=…计算可以大大简化为
让diff=矩.utc(date2.diff(date1));console.log(diff.format('HH:mm:ss');
    const date1: any = new Date(Date.now());
    const date2: any = new Date(marked_deletion_at);

    const diffTime = Math.abs(date2 - date1);

    const date = new Date(diffTime);
    console.log(date) // Thu Jan 01 1970 23:47:16 GMT+0300
    const hours = date.getHours();
    const minutes = '0' + date.getMinutes();
    const seconds = '0' + date.getSeconds();

    // Will display time in 10:30:23 format
    const formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
    console.log(formattedTime) // 23:47:16