@jxstjh/jhvideo
Version:
HTML5 jhvideo base on MPEG2-TS Stream Player
55 lines (54 loc) • 1.99 kB
text/typescript
import { min } from "../../node_modules/rxjs/dist/types/index"
const getTime = (str: string) => {
str = str.replace(new RegExp('-','g'), '/')
str = str.split('.')[0]
return new Date(str).getTime()
}
export interface RecordItem {
begintime: number,
endtime: number
}
function isContinuous(begin, end) {
const minus = Math.abs(begin - end)
return minus <= 1000 * 3
}
export const filterQueryRecordArr = (arr: Array<{ begintime: string, endtime: string }>): RecordItem[] => {
let result: RecordItem[] = []
if (!Array.isArray(arr) || arr.length === 0) {
return result
}
const _arr: RecordItem[] = arr.map(item => ({
begintime: getTime(item.begintime),
endtime: getTime(item.endtime)
}))
const [start, ...others] = _arr
result = [start]
others.forEach((item) => {
// if (item.begintime !== result[result.length - 1].endtime) {
if (!isContinuous(item.begintime, result[result.length - 1].endtime)) {
result.push(item)
} else {
result[result.length - 1].endtime = item.endtime
}
});
return result
}
export const formatTimeStr = (time: number, fix = false) => {
const now = new Date(time)
const h = now.getHours() //hour
const m = now.getMinutes() //minute
const s = now.getSeconds() //second
let _h: any = h < 10 ? '0' + h : '' + h
let _m: string = m < 10 ? '0' + m : '' + m
let _s: string = s < 10 ? '0' + s : '' + s
return `${_h}:${_m}:${_s}`
}
export const formatTimeClock = (time: number) => {
const h = Math.floor(time / (3600 * 1000))
const m = Math.floor((time - (3600 * 1000) * h) / (60 * 1000))
const s = Math.floor((time - (3600 * 1000) * h - (60 * 1000) * m) / 1000)
let _h: any = h < 10 ? '0' + h : '' + h
let _m: string = m < 10 ? '0' + m : '' + m
let _s: string = s < 10 ? '0' + s : '' + s
return `${_h}:${_m}:${_s}`
}