具体实施方式
时间作为物理学中七个基本物理量,其重要性不言而喻。随着智能终端的发展和互联网的普及,用户获取当前时刻的途径越来越多,其中用户可随时随地查看终端上本地显示时刻来获取当前时刻,而且终端上本地显示时刻在各行各业发挥着重要的角色。例如对于倒计时,倒计时作为当前各行各业的一种常见的技术需求,如图1所示的一示例性应用场景,某个电商网站为了在节前加大商品售卖量,推出限时促销活动,在限时促销活动中每件商品下方倒计时显示的是活动剩余时长,该活动剩余时长是根据服务端下发的活动结束时刻和终端本地当前显示时刻作差计算得到,例如服务端下发的限时促销活动结束时刻是8:30,终端本地当前显示时刻是8:00,此时在限时促销活动中每件商品下方倒计时显示的是活动剩余时长是30分钟。
由于终端本地显示时刻随时有可能被用户或者其他人篡改,这样在终端显示的倒计时剩余时长就可能出现错误,例如终端本地当前显示时刻是8:20,在终端显示的倒计时剩余时长是10分钟(8:20-8:30),如果终端本地当前显示时刻被其他人调整到8:00,此时在终端本地显示的倒计时剩余时长将不再准确,倒计时剩余时长是30分钟,与真实的剩余时长10分钟相差较大,例如对于电商网站等,可能会造成经济损失,类似的基于终端本地显示时刻的其它应用场景本说明书在此不再一一描述,由此可以看出,确保终端本地显示时刻正确的重要性。
针对上述技术问题,本说明书实施例提供一种显示时刻异常的确定的技术方案,在本说明书中,通过计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差,对比第一时间差与第二时间差是否满足预设的要求,以此可以确定本地显示时刻是否异常。
具体的,本说明书实施例提供的技术方案如下:
获取本地时钟源输出的当前时刻以及本地当前显示时刻;获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻;计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差;判断所述第一时间差与第二时间差是否一致;若否,则确定本地显示时刻异常。
在本说明书中,终端可以是当前手机、平板、电脑等任意终端设备,在终端上一般存在两个时刻,本地显示时刻和本地时钟源输出时刻,其中本地显示时刻可以是手机、平板、电脑等桌面上显示的时刻,该显示时刻可以被任意篡改,而对于本地时钟源输出时刻,一般由晶振等元器件输出的频率转换而来,由于其物理特性,本地时钟源输出时刻误差较小且不易篡改,因此通过计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差,对比第一时间差与第二时间差是否满足预设的要求,以此可以确定本地显示时刻是否异常。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
参见图2所示,为本说明书实施例提供的显示时刻异常的确定方法的实施流程图,该方法具体可以包括以下步骤:
S201,获取本地时钟源输出的当前时刻以及本地当前显示时刻;
在本说明书中,在手机、平板、电脑等任意终端设备上,一般存在两个时刻,即本地显示时刻以及本地时钟源输出时刻,其中本地显示时刻可以是手机、平板、电脑等桌面上显示的时刻,该显示时刻可以被任意篡改,例如终端本地当前显示时刻为8:00,然而可以被篡改成10:00,或者其它任意时刻,而一旦本地显示时刻被篡改,基于本地显示时刻的应用场景会出现相应的问题,例如对于倒计时、支付类应用场景,导致倒计时剩余时长不准确,支付订单的生成时间不准确等一系列问题,而对于本地时钟源输出时刻,一般由晶振等元器件输出的频率转换而来,由于其物理特性,本地时钟源输出时刻误差较小且不易篡改。因此在本说明书中,可以获取本地时钟源输出的当前时刻以及本地当前显示时刻。
优选的,可以进一步配置获取本地时钟源输出时刻以及本地显示时刻的获取周期,例如每间隔100ms获取一次本地时钟源输出时刻以及本地显示时刻。相应的,例如当前获取周期为第5个获取周期,在当前获取周期中获取本地时钟源输出的当前时刻以及本地当前显示时刻。
S202,获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻;
在本说明书中,在历史上某一刻记录本地时钟源输出时刻以及本地显示时刻,可以获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻。
优选的,由于配置了获取本地时钟源输出时刻以及本地显示时刻的获取周期,则该已记录的本地时钟源输出的历史时刻以及本地历史显示时刻为已记录的历史上任一获取周期所获取的本地时钟源输出时刻以及本地显示时刻,意味着该已记录的本地时钟源输出的历史时刻以及本地历史显示时刻可以为已记录的上一获取周期所获取的本地时钟源输出时刻以及本地显示时刻,也可以为已记录的最近第2个获取周期所获取的本地时钟源输出时刻以及本地显示时刻。
例如,当前获取周期为第5个获取周期,该已记录的本地时钟源输出的历史时刻以及本地历史显示时刻为已记录的历史上第1、2、3、4等任一获取周期所获取的本地时钟源输出时刻以及本地显示时刻。
S203,计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差;
针对S201中获取的本地时钟源输出的当前时刻以及S202中获取的本地时钟源输出的历史时刻,计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,针对S201中获取的本地当前显示时刻以及S202中获取的已记录的本地历史显示时刻,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差。
优选的,由于本地显示时刻可能随时被篡改,因此计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差的绝对值。
例如,计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差为1005ms,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差的绝对值为1000ms。
S204,判断所述第一时间差与第二时间差是否满足预设的要求;
针对S203中所计算的第一时间差以及第二时间差,判断该第一时间差以及第二时间差是否满足预设的要求。优选的,由于本地显示时刻可能随时被篡改,因而计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差的绝对值,则相应的判断所述第一时间差与第二时间差的绝对值是否满足预设的要求。
其中,判断所述第一时间差与第二时间差的绝对值是否满足预设的要求,具体可以分为如下两类情况:
第一类,判断所述第一时间差与第二时间差的绝对值是否一致。在不考虑本地显示时刻被篡改的情况下,理论上本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,与本地当前显示时刻与已记录的本地历史显示时刻的第二时间差应该一致。例如,本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差为1000ms,本地当前显示时刻与已记录的本地历史显示时刻的第二时间差为1000ms,两者一致,说明本地显示时刻正常,否则说明本地显示时刻异常。
第二类,判断所述第一时间差与第二时间差的绝对值的差值是否不大于预设的时间差阈值。由于误差等因素的存在,当第一时间差与第二时间差的绝对值的差值在允许的误差范围内,则认为本地显示时刻正常,否则认为本地显示时刻异常。因此可以预先设置时间差阈值,例如可以为10ms,通过判断第一时间差与第二时间差的绝对值的差值是否不大于预设的时间差阈值,可以确定本地显示时刻是否异常,若第一时间差与第二时间差的绝对值的差值不大于预设的时间差阈值,则说明本地显示时刻正常,若第一时间差与第二时间差的绝对值的差值大于预设的时间差阈值,则说明本地显示时刻异常。
例如本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差为1005ms,本地当前显示时刻与已记录的本地历史显示时刻的第二时间差的绝对值为1000ms,两者的差值为5ms,在允许的误差范围之内,即不大于预设的时间差阈值,则确定本地显示时刻正常。
S205,若否,则确定本地显示时刻异常。
若满足预设的要求,则确定本地显示时刻正常,若未满足预设的要求,则确定本地显示时刻异常。
具体的,若所述第一时间差与第二时间差的绝对值一致,即满足预设的要求,则确定本地显示时刻正常,若所述第一时间差与第二时间差的绝对值不一致,即未满足预设的要求,则确定本地显示时刻异常。
或者若所述第一时间差与第二时间差的绝对值的差值不大于预设的时间差阈值,即满足预设的要求,则确定本地显示时刻正常,若所述第一时间差与第二时间差的绝对值的差值大于预设的时间差阈值,即未满足预设的要求,则确定本地显示时刻异常。
作为优选的实施例,在确定本地显示时刻异常的情况下,询问用户是否更改本地显示时刻;若接收到用户输入的本地显示时刻更改指令,则利用已记录的本地历史显示时刻加上所述第一时间差得到本地最新显示时刻;由本地当前显示时刻更改为本地最新显示时刻。如此可以确保本地显示时刻的正确性。
另外,为了保证方便随时查看本地显示时刻何时异常,可以生成本地显示时刻异常事件,用于记录本地显示时刻异常信息。
通过上述对本说明书实施例提供的技术方案的描述,通过获取本地时钟源输出的当前时刻以及本地当前显示时刻,获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻,计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差,判断所述第一时间差与第二时间差是否满足预设的要求,以此可以确定本地显示时刻是否异常。
相较于上述方法实施例,本说明书实施例还提供一种倒计时剩余时长显示装置,参见图3所示,该装置可以包括:第一获取模块310、第二获取模块320、时间差计算模块330、判断模块340、确定模块350。
第一获取模块310,用于获取本地时钟源输出的当前时刻以及本地当前显示时刻;
第二获取模块320,用于获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻;
时间差计算模块330包括:第一时间差计算子模块331,用于计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差;
第二时间差计算子模块332,用于计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差;
判断模块340,用于判断所述第一时间差与第二时间差是满足预设的要求;
确定模块350,用于若否,则确定本地显示时刻异常。
在本说明书的一种具体实施方式中,所述装置还包括;
获取周期配置模块360,用于配置获取本地时钟源输出时刻以及本地显示时刻的获取周期;
所述第一获取模块310具体用于:
在当前获取周期中获取本地时钟源输出的当前时刻以及本地当前显示时刻。
在本说明书的一种具体实施方式中:
所述已记录的本地时钟源输出的历史时刻以及本地历史显示时刻为已记录的历史上任一获取周期所获取的本地时钟源输出时刻以及本地显示时刻。
在本说明书的一种具体实施方式中,所述第二时间差计算子模块332具体用于:
计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差的绝对值;
所述判断模块340具体用于:
判断所述第一时间差与第二时间差的绝对值是否满足预设的要求。
在本说明书的一种具体实施方式中,所述判断模块340具体用于:
判断所述第一时间差与第二时间差的绝对值的差值是否不大于预设的时间差阈值;
所述确定模块350具体用于:
若所述第一时间差与第二时间差的绝对值的差值大于预设的时间差阈值,则确定本地显示时刻异常。
在本说明书的一种具体实施方式中,所述装置还包括:
显示时刻更改模块370,用于在确定本地显示时刻异常的情况下,询问用户是否更改本地显示时刻;
若接收到用户输入的本地显示时刻更改指令,则利用已记录的本地历史显示时刻加上所述第一时间差得到本地最新显示时刻;
由本地当前显示时刻更改为本地最新显示时刻。
在本说明书的一种具体实施方式中,所述装置还包括:
事件生成模块380,用于生成本地显示时刻异常事件,用于记录本地显示时刻异常信息。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
通过上述对本说明书实施例提供的技术方案的描述,通过获取本地时钟源输出的当前时刻以及本地当前显示时刻,获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻,计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差,判断所述第一时间差与第二时间差是否满足预设的要求,以此可以确定本地显示时刻是否异常。
本说明书实施例还提供一种计算机设备,如图4所示,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的倒计时剩余时长显示方法。该方法至少包括:
一种显示时刻异常的确定方法,应用于终端,该方法包括:
获取本地时钟源输出的当前时刻以及本地当前显示时刻;
获取已记录的本地时钟源输出的历史时刻以及本地历史显示时刻;
计算本地时钟源输出的当前时刻与已记录的本地时钟源输出的历史时刻的第一时间差,计算本地当前显示时刻与已记录的本地历史显示时刻的第二时间差;
判断所述第一时间差与第二时间差是否满足预设的要求;
若否,则确定本地显示时刻异常。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。