Javascript定时器与数组查询

Javascript Timer with Array Query

本文关键字:查询 数组 定时器 Javascript      更新时间:2023-09-26

我正在尝试创建一个网站,它需要输入日期时间(从c#端点生成)在世界上的一个位置(例如新加坡/伦敦),然后显示当前时间从该位置并开始"滴答"

当时钟滴答(和加载)时,我需要它搜索一个datetime数组,其中包含开始和结束日期,其中定义了一天中的30分钟时间段。

有了这两条信息,我需要得到当前时间所在项的数组索引(数组如下所示)

function (timeslotDate) {
    var current = timeslotDate.toDate();
    global_timeslots = new Array();
    global_timeslots['0'] = new Array(2, current.setHours(0, 0, 0, 0), current.setHours(0, 29, 59, 0));
    global_timeslots['1'] = new Array(3, current.setHours(0, 30, 0, 0), current.setHours(0, 59, 59, 0));
    global_timeslots['2'] = new Array(4, current.setHours(1, 0, 0, 0), current.setHours(1, 29, 59, 0));
    global_timeslots['3'] = new Array(5, current.setHours(1, 30, 0, 0), current.setHours(1, 59, 59, 0));
    global_timeslots['4'] = new Array(6, current.setHours(2, 0, 0, 0), current.setHours(2, 29, 59, 0));
    global_timeslots['5'] = new Array(7, current.setHours(2, 30, 0, 0), current.setHours(2, 59, 59, 0));
    global_timeslots['6'] = new Array(8, current.setHours(3, 0, 0, 0), current.setHours(3, 29, 59, 0));
    global_timeslots['7'] = new Array(9, current.setHours(3, 30, 0, 0), current.setHours(3, 59, 59, 0));
    global_timeslots['8'] = new Array(10, current.setHours(4, 0, 0, 0), current.setHours(4, 29, 59, 0));
    global_timeslots['9'] = new Array(11, current.setHours(4, 30, 0, 0), current.setHours(4, 59, 59, 0));
    global_timeslots['10'] = new Array(12, current.setHours(5, 0, 0, 0), current.setHours(5, 29, 59, 0));
    global_timeslots['11'] = new Array(13, current.setHours(5, 30, 0, 0), current.setHours(5, 59, 59, 0));
    global_timeslots['12'] = new Array(14, current.setHours(6, 0, 0, 0), current.setHours(6, 29, 59, 0));
    global_timeslots['13'] = new Array(15, current.setHours(6, 30, 0, 0), current.setHours(6, 59, 59, 0));
    global_timeslots['14'] = new Array(16, current.setHours(7, 0, 0, 0), current.setHours(7, 29, 59, 0));
    global_timeslots['15'] = new Array(17, current.setHours(7, 30, 0, 0), current.setHours(7, 59, 59, 0));
    global_timeslots['16'] = new Array(18, current.setHours(8, 0, 0, 0), current.setHours(8, 29, 59, 0));
    global_timeslots['17'] = new Array(19, current.setHours(8, 30, 0, 0), current.setHours(8, 59, 59, 0));
    global_timeslots['18'] = new Array(20, current.setHours(9, 0, 0, 0), current.setHours(9, 29, 59, 0));
    global_timeslots['19'] = new Array(21, current.setHours(9, 30, 0, 0), current.setHours(9, 59, 59, 0));
    global_timeslots['20'] = new Array(22, current.setHours(10, 0, 0, 0), current.setHours(10, 29, 59, 0));
    global_timeslots['21'] = new Array(23, current.setHours(10, 30, 0, 0), current.setHours(10, 59, 59, 0));
    global_timeslots['22'] = new Array(24, current.setHours(11, 0, 0, 0), current.setHours(11, 29, 59, 0));
    global_timeslots['23'] = new Array(25, current.setHours(11, 30, 0, 0), current.setHours(11, 59, 59, 0));
    global_timeslots['24'] = new Array(26, current.setHours(12, 0, 0, 0), current.setHours(12, 29, 59, 0));
    global_timeslots['25'] = new Array(27, current.setHours(12, 30, 0, 0), current.setHours(12, 59, 59, 0));
    global_timeslots['26'] = new Array(28, current.setHours(13, 0, 0, 0), current.setHours(13, 29, 59, 0));
    global_timeslots['27'] = new Array(29, current.setHours(13, 30, 0, 0), current.setHours(13, 59, 59, 0));
    global_timeslots['28'] = new Array(30, current.setHours(14, 0, 0, 0), current.setHours(14, 29, 59, 0));
    global_timeslots['29'] = new Array(31, current.setHours(14, 30, 0, 0), current.setHours(14, 59, 59, 0));
    global_timeslots['30'] = new Array(32, current.setHours(15, 0, 0, 0), current.setHours(15, 29, 59, 0));
    global_timeslots['31'] = new Array(33, current.setHours(15, 30, 0, 0), current.setHours(15, 59, 59, 0));
    global_timeslots['32'] = new Array(34, current.setHours(16, 0, 0, 0), current.setHours(16, 29, 59, 0));
    global_timeslots['33'] = new Array(35, current.setHours(16, 30, 0, 0), current.setHours(16, 59, 59, 0));
    global_timeslots['34'] = new Array(36, current.setHours(17, 0, 0, 0), current.setHours(17, 29, 59, 0));
    global_timeslots['35'] = new Array(37, current.setHours(17, 30, 0, 0), current.setHours(17, 59, 59, 0));
    global_timeslots['36'] = new Array(38, current.setHours(18, 0, 0, 0), current.setHours(18, 29, 59, 0));
    global_timeslots['37'] = new Array(39, current.setHours(18, 30, 0, 0), current.setHours(18, 59, 59, 0));
    global_timeslots['38'] = new Array(40, current.setHours(19, 0, 0, 0), current.setHours(19, 29, 59, 0));
    global_timeslots['39'] = new Array(41, current.setHours(19, 30, 0, 0), current.setHours(19, 59, 59, 0));
    global_timeslots['40'] = new Array(42, current.setHours(20, 0, 0, 0), current.setHours(20, 29, 59, 0));
    global_timeslots['41'] = new Array(43, current.setHours(20, 30, 0, 0), current.setHours(20, 59, 59, 0));
    global_timeslots['42'] = new Array(44, current.setHours(21, 0, 0, 0), current.setHours(21, 29, 59, 0));
    global_timeslots['43'] = new Array(45, current.setHours(21, 30, 0, 0), current.setHours(21, 59, 59, 0));
    global_timeslots['44'] = new Array(46, current.setHours(22, 0, 0, 0), current.setHours(22, 29, 59, 0));
    global_timeslots['45'] = new Array(47, current.setHours(22, 30, 0, 0), current.setHours(22, 59, 59, 0));
    global_timeslots['46'] = new Array(48, current.setHours(23, 0, 0, 0), current.setHours(23, 29, 59, 0));
    global_timeslots['47'] = new Array(49, current.setHours(23, 30, 0, 0), current.setHours(23, 59, 59, 0));
}

因此,如果当前时间是3:45am,那么返回的时隙索引应该是7。使用此功能的原因是,每次它进入一个新的时间段时,它都会更新屏幕上的内容(通过某种端点)。我拉我的头发,但是从c#(作为一个字符串)得到一个日期对象,开始一个滴答作响的时钟,然后检查上面的数组。希望能提供一些粗略的指导。

一个示例输入字符串(从我的c#端点生成)是:'09-16-2015 03:24:36'

Moment.js可能是你在这个项目中最好的朋友。http://momentjs.com/docs/

它执行各种日期魔术,包括处理许多不同格式的字符串到datetime值的转换。