$(function () { var winw = $(window).width(); var winh = $(window).height(); // 或者直播前中后的状态 // 获取直播状态函数 function getLiveStatusFun(obj) { // 获取对象 var obj = $(obj); // 存储所有时间转成时间戳的数组对象 var allTimestamp = []; // 循环对象 obj.each(function () { // 获取对象 var _this = $(this); var day = _this.data('day'); var time = _this.data('time'); // 转成时间戳 allTimestamp.push({ start: (new Date(day + " " + time.split("-")[0] + ":00")).getTime(), end: (new Date(day + " " + time.split("-")[1] + ":00")).getTime() }); }) // 获取本地时间戳 setInterval(function () { liveTimer(); }, 10000); function liveTimer() { var getLocalTime = getLocalTimeFun(); // 对比时间戳 for (var i = 0; i < allTimestamp.length; i++) { if (getLocalTime < allTimestamp[i].start) { obj.eq(i).attr('data-status', 'liveBefore'); } else if (getLocalTime > allTimestamp[i].start && getLocalTime < (allTimestamp[i].end + 1000 * 60 * 30)) { obj.eq(i).attr('data-status', 'liveMiddle'); } else { obj.eq(i).attr('data-status', 'livePlayback'); } } } liveTimer(); } // 调用函数 getLiveStatusFun('.J-liveStatusTime'); // 写状态 function setStatusTimer() { // keynotes $('.J-liveStatusTime').each(function () { var _this = $(this); var _index = _this.index(); var liveObj = _this.find(".live"); //直播中 var comingSoonObj = _this.find(".coming-soon"); //直播中 var playBackObj = _this.find('.playback'); //回放 var status = _this.attr('data-status'); if (status == 'liveBefore') { comingSoonObj.css('display', 'flex'); liveObj.css('display', 'none'); playBackObj.css('display', 'none'); } else if (status == 'liveMiddle') { comingSoonObj.css('display', 'none'); liveObj.css('display', 'flex'); playBackObj.css('display', 'none'); } else if (status == 'livePlayback') { comingSoonObj.css('display', 'none'); liveObj.css('display', 'none'); playBackObj.css('display', 'flex'); } }) }; setStatusTimer(); setInterval(function () { setStatusTimer(); }, 3000) // 判断是移动端还是pc段函数 function os() { var ua = navigator.userAgent var isPhone = ua.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i) return { isPc: !isPhone } } // 转时区函数 function getLocalTimeFun() { var timeStr = $('.J-liveStatusTime').data('timestr'); var curgetLocalTime = (new Date()).getTime(); var curgetLocalTimeZoneHour = timeStr.split(':')[0] * 1 * 60 * 60 * 1000; var curgetLocalTimeZoneMinutes = timeStr.split(':')[1] * 1 * 60 * 1000; var curgetPcTimeZone = (new Date()).getTimezoneOffset() / 60 * 60 * 60 * 1000; var curtwoContryTime = curgetLocalTimeZoneHour + curgetLocalTimeZoneMinutes + curgetPcTimeZone; var curgetLocalTime = curgetLocalTime + curtwoContryTime; return curgetLocalTime; } })