javascript - 在 javascript 中将时间添加到当前日期或键入脚本
问题描述
我正在尝试将时间添加到当前日期。
例子:
我有这个时间:05:17 am
我想通过此时替换当前时间来添加这个时间当前日期。
如果当前日期和时间是:10-09-2021 11:30 am
我想添加当前日期并用我的特定时间替换时间=>输出例如上面:10-09-2021 05:17 am
我在尝试:
var time = this.timeInput;
new Date().getTime() + convertTimeToInt(time);
// in this case we add current time to my input time, i don't want this.
convertTimeToInt()
是将时间转换为 int 的方法。
任何想法?
解决方案
这会做
let time = '05:17 pm';
let splittedTime = time.split(' ');
let [hours, minutes] = splittedTime[0].split(':');
let isAm = splittedTime[1] === 'am'; // in europe we don't use am, the hours goes from 0 to 24
var date = new Date(); // now
console.log('before ' + date);
let hourToAdd = 0;
if(+hours === 12) {
if(isAm) {
hourToAdd = - 12; // at midnight we dont add +12 nor +0, we want 12am to be 0 hours
} else {
hourToAdd = 0;
}
} else {
hourToAdd = isAm ? 0 : 12;
}
// use setHours to set time
date.setHours(+hours + hourToAdd, +minutes, 0, 0);
console.log('after ' + date);
输出:
let time = '12:17 pm';
[LOG]: "before Fri Sep 10 2021 14:37:07 GMT+0200
[LOG]: "after Fri Sep 10 2021 12:17:00 GMT+0200
let time = '12:17 am';
[LOG]: "before Fri Sep 10 2021 14:37:27 GMT+0200
[LOG]: "after Fri Sep 10 2021 00:17:00 GMT+0200
let time = '05:17 am';
[LOG]: "before Fri Sep 10 2021 14:37:45 GMT+0200
[LOG]: "after Fri Sep 10 2021 05:17:00 GMT+0200
let time = '05:17 pm';
[LOG]: "before Fri Sep 10 2021 14:38:21 GMT+0200
[LOG]: "after Fri Sep 10 2021 17:17:00 GMT+0200
更新:没有上午/下午,你可以使用
let time = '05:17';
let [hours, minutes] = time.split(':');
var date = new Date(); // now
console.log('before ' + date);
date.setHours(+hours, +minutes, 0, 0); // set hours/minute
console.log('after ' + date);
输出:
[LOG]: "before Fri Sep 10 2021 11:03:07 GMT+0200
[LOG]: "after Fri Sep 10 2021 05:17:00 GMT+0200
推荐阅读
- ios - 何时使用 SQLite.swift 将记录提交到磁盘?
- java - Java CertPathBuilderException 和 SSLHandshakeException
- python-3.x - str.replace() 将 char 替换为 "char"
- blockly - 包括 Accessible 和 Standard Blockly
- perl - 在 Perl 脚本中处理 Unix 命令执行
- google-apps-script - 一种计算用户分数是否与结局游戏分数匹配的方法
- python - PyQt5 从 QLineEdit 到变量
- python - Keras 中的预测大于 1 或为负
- python-3.x - 使用 BS4 从 Span 中刮取“新”标志
- vba - Excel VBA自动填充范围(单元格())不起作用