增加一个可变时间字段(24格式)和一个可变日期字段(m/d/yy h:MM tt),在另一个字段中产生结果



请帮忙!我是一个非常新手的JavaScript用户,已经搜索了论坛,试图找到一个答案来解决我的问题:

我有两个字段是可变的,我试图将它们添加到一个单独的字段中。一个字段(TotHr)是HH:MM格式,另一个是日期时间字段(DTin1)是m/d/yy h:MM tt格式。我需要以与datetime字段相同的格式读取输出。这将在我的工作中用于各种控制台,所以我不想使用像moment.js这样的库。

到目前为止我写的是:

var date = new Date();
var dateMil = date.getTime("DTin1");
var timePeriod = ("TotHr");
var parts = timePeriod.split(/:/);
var timePeriodMil = (parseInt(parts[0], 10) * 60 * 60 * 1000) +
(parseInt(parts[1], 10) * 60 * 1000) + 
(parseInt(parts[2], 10) * 1000);
var newDate = new Date();
newDate.setTime(dateMil + timePeriodMil);
console.log(newDate);

在JavaScript中有很多方法可以做到。一个简单的方法是使用一些库,例如下面的代码使用moment.js库。

const { duration } = require('moment')
const moment = require('moment-timezone')
let strDuration = "10:30"
let strDateTime = "9/6/21 5:10 am"
let format = 'M/D/YY h:m a'
dur = moment.duration(strDuration)
dt = new moment(strDateTime, format)
result = dt.add(dur).tz('Europe/London').format(format)
console.log(result)

输出:

9/6/21 3:40 pm

最新更新