javascript - Javascript 根据新日期仅获得偶数小时周期
问题描述
根据实际时间(例如 01/08/2018 à 12:03:56),我只需要偶数小时(下一个期间和当前时间):
const getEvenHoursFromDate = (date) => {
return {
nextSlice,
previousSlice
}
}
getEvenHoursFromDate(new Date())
输出 :
{
nextSlice : '14:00:00-01/08/2018',
previousSlice: '12:00:00-01/08/2018'
}
解决方案
就个人而言,我不建议使用非标准格式进行日期表示。如果是 ISO 格式就更好了。并且在javascript日期实例中比任何文本演示都好
function pad(num, prefix = '0'){
return (prefix + num).slice(-2);
}
function dateFormat(date){
return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}-${pad(date.getDate())}/${pad(date.getMonth())}/${date.getFullYear()}`;
}
function normalizeDate(date, step, add = 0){
let hour = Math.floor(date.getHours() / step) * step + add;
let result = new Date(date.valueOf());
result.setHours(hour, 0,0,0);
return result;
}
function getPeriods(date, format = d => d){
return {
next: format(normalizeDate(date, 2, 2)),
current: format(normalizeDate(date, 2))
}
}
//formatted
console.log(getPeriods(new Date(), dateFormat));
//as date instances
console.log(getPeriods(new Date()));
推荐阅读
- python - 循环使用与字符串匹配的键的 dict 项
- powerbi - 如何使用 dax 或 m 添加一列以查找在第二个表中找到的最接近的日期?
- python - 尝试创建一个函数来测试数据框列列表与同一列表的相关性
- r - 调用 getPromoterSeq(GenomicFeatures 包)后,密钥 112(char 'p')不在 Biostrings 的查找表中
- regex - MATLAB regexp - 使用“名称”返回出现次数未知的模式中的每个实例
- c# - C# 正则表达式替换关于匹配长度的匹配
- python-3.x - Python 3.x 中的多线程错误问题
- laravel - 异常应该处理返回的错误响应吗
- ios - Swift - 覆盖 UIView 的两个子类中的方法
- ajax - “ajax”和“http”请求有什么区别?