因此,您想在添加一些时间间隔(特别是分钟)后将您拥有的时间戳转换timestamp
为语言环境时间字符串。
无论您有一种日期时间字符串还是一种纪元 mili/seconds,只需创建一个 Date 对象:
const date = new Date(timestamp);
请记住,因为您需要做的事情需要将一些数字(您的情况:分钟)添加/减去另一个数字,而不是某些日期对象或某些日期时间字符串,并且该数字是您日期的纪元 mili/secods。因此,您始终需要以英里/秒为单位的日期的数字表示。JavaScriptDate.prototype.getTime()
确实返回您日期的纪元毫秒。用它:
const miliseconds = date.getTime();
添加多达毫秒:
const newMiliseconds = miliseconds + (75 * 60 * 1000);
之后,正如您所说,您需要一个日期时间字符串,以及其中的一部分;locale time string,你需要一直往回走;从数字到日期对象和日期时间字符串:
const newDate = new Date(newMiliseconds);
const newTimestamp = newDate.toString();
或者不是获取它的整个字符串,而是使用以下专门的方法来获取您直接喜欢的日期对象的字符串表示的格式/部分:
const newTimestamp = newDate.toLocaleTimeString(); // "12:41:43"
最后,您所要做的就是去掉最后一个分号和秒以获得小时:分钟格式:
const newHoursMins = newTimestamp.slice(0, -3);
更好地利用它:
function timestampPlus(timestamp, milisecondsDifference, toStringFunc = Date.prototype.toString) {
const date = new Date(timestamp);
const miliseconds = date.getTime();
const newMiliseconds = miliseconds + milisecondsDifference;
const newDate = new Date(newMiliseconds);
const newTimestamp = toStringFunc.call(newDate); // a bit advanced stuff here to let you define once and use whatever kind to string method you want to use, defaults to toString()
return newTimestamp;
}
我在这里留下了最终的格式。您也可以通过传递一个否定的第二个参数来使用它进行减法。请注意 seconds 参数以毫秒为单位,unix 时间戳会有所不同,并且可能以秒为单位提供给您,在这种情况下,您需要将其转换为毫秒或更改上述函数定义。
function timestampPlus(timestamp, milisecondsDifference, toStringFunc = Date.prototype.toString) {
const date = new Date(timestamp);
const miliseconds = date.getTime();
const newMiliseconds = miliseconds + milisecondsDifference;
const newDate = new Date(newMiliseconds);
const newTimestamp = toStringFunc.call(newDate); // a bit advanced stuff here to let you define once and use whatever kind to string method you want to use, defaults to toString()
return newTimestamp;
}
console.log("new Date(1368435600*1000).toLocaleTimeString(): ", new Date(1368435600*1000).toLocaleTimeString())
console.log("timestampPlus(1368435600*1000, 75*60*1000, Date.prototype.toLocaleString): ", timestampPlus(1368435600*1000, 75*60*1000, Date.prototype.toLocaleTimeString))
除了你需要的,对于最后一个参数,toStringFunc
你的选项会有所不同并包含所有相关Date
的方法,它们是 on Date.prototype
:
toString
toDateString
toTimeString
toLocaleString
toLocaleDateString
toLocaleTimeString
toIsoString
toUTCString
toGMTString
toJSON