我在javascript日期中遇到问题。我想显示之前和之后的30分钟
我应该如何在current dates
中添加30分钟之前或之后。
this.setState({
current:new Date().toLocaleTimeString(), //10:30:02 PM
slotTime: new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }), //10:30 AM
输出:
10:30 AM //current date
预期:
10:00 AM //previous
10:30 AM //current
11:00 AM //after 30min
有人帮我吗?
希望此帮助
* required:
* - timestamp => number of timestamp format
* - format => return format, ex. format 1 (23:59:59), format 2 (23:59)
* return: time with string
*/
function timestampToTime(timestamp, format = 1) {
if (!isNaN(timestamp) || timestamp != undefined) {
let dd = new Date(timestamp)
if (format == 1) {
return ('00' + dd.getHours()).slice(-2) + ':' + ('00' + dd.getMinutes()).slice(-2) + ':' + ('00' + dd.getSeconds()).slice(-2)
} else if (format == 2) {
return ('00' + dd.getHours()).slice(-2) + ':' + ('00' + dd.getMinutes()).slice(-2)
}
} else {
return null
}
}
let dd = + new Date()
let previous = timeStampToTime(dd - (1.8e+6)) // 1.8e+6 = 30 min
let current = timeStampToTime(dd)
let after = timeStampToTime(dd + (1.8e+6)) // 1.8e+6 = 30 min
console.log(previous)
console.log(current)
console.log(after)
您可以这样简单地进行:
var date = new Date();
var dd = date.setMinutes(date.getMinutes() -30); //reduce 30 minutes
var reductedTime = new Date(dd);
console.log("Current time: ", new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })) //current time
console.log("Reduced time: ", reductedTime.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })) // reduced time by 30mins