繁体   English   中英

如何从本地日期时间输入中减去时间?

[英]How do i subtract time from a datetime-local input?

嗨,我是 JavaScript 的新手,几乎没有经验。 单击按钮将打印输入时间。

我试图做的是将时间减去 9 小时 30 分钟,但我找不到办法。

如果有人可以解释如何做到这一点,这将对我有很大帮助。

我在下面附上了整个 HTML 文档。

 function myFunction() { var x = document.getElementById("meeting-time").value; document.getElementById("demo").innerHTML = x; }
 <input type="datetime-local" id="meeting-time" name="meeting-time"> <button onclick="myFunction()">click to print time</button> <p id="demo"></p>

您必须使用日期Object。

  1. 将输入作为日期传递 object
  2. 根据需要减去小时和分钟来设置新日期

旁注:如果您有更复杂的操作,包括日期,您可以使用第三方库,如Moments Js

 function myFunction() { var x = document.getElementById("meeting-time").value; var date = new Date(x); // parse date as a Date object: TODO: Error handling -> sanitize the input date.setHours(date.getHours() - 9); // change the date object by subtracting hours from the same date object date.setMinutes(date.getMinutes() - 30); // change the date object by subtracting minutes from the same date object document.getElementById("demo").innerHTML = date; }
 <input type="datetime-local" id="meeting-time" name="meeting-time"> <button onclick="myFunction()">click to print time</button> <p id="demo"></p>

如果您不想为 javascript-date-Object 及其怪癖而烦恼,那么您可以使用 dayjs: https://day.js.org/

DayJS 允许您在 Javascript 中非常轻松地使用 Dates,例如:

const dayjs = require('dayjs');
let now = dayjs();
console.log(now.format());

这是您可以使用 dayjs 从日期中减去特定时间单位的方法:

dayjs().subtract(7, 'year')

您可以使用以下任何库来满足您的要求,

日期-fns 示例:

var sub = require('date-fns/sub');
   
// Subtract the following duration from 15 June 2017 15:29:20
const result = sub(new Date(2017, 5, 15, 15, 29, 20), {
  years: 2,
  months: 9,
  weeks: 1,
  days: 7,
  hours: 5,
  minutes: 9,
  seconds: 30
})
//=> Mon Sep 1 2014 10:19:50

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM