Wechat contestando el mini programa de cálculo de tiempo de lógica combinada

He estado monitoreando los datos del subprograma de respuesta del edificio de fiestas que desarrollé estos días y encontré un problema, es decir, los datos del tiempo de respuesta del usuario son algo inexactos.

Como se muestra en la figura siguiente, el usuario número uno, con 20 preguntas, incluso si no tiene cerebro para responder las preguntas, no lo completará en 5 segundos.

Lógica actual

Calcule el tiempo transcurrido mediante la cuenta regresiva. En este momento, si la cuenta regresiva ya no se calcula debido a presionar Inicio para regresar, los datos de tiempo transcurrido serán menores

 

Lógica de optimización

Grabe dos marcas de tiempo,

1. Marca de hora de inicio

2. La marca de tiempo final de la respuesta

 

Los datos de tiempo transcurrido se calculan mediante estas dos marcas de tiempo. En este caso, los datos de tiempo transcurrido de la respuesta del usuario se pueden obtener con precisión

 

API sobre la fecha de la marca de tiempo

var timestamp = Date.parse (nueva fecha ()); 
timestamp = timestamp / 1000;

 

Lógica específica

Si los dos objetos de fecha son del tipo Fecha, puede restarlos directamente y obtendrá la diferencia en milisegundos.

 

Después de obtener la diferencia de milisegundos entre las dos fechas, se puede convertir a un formato de fecha específico (año xxxx, mes xx, día xx, hora xx, minuto xx, xx segundo)

Porque lo que obtenemos son milisegundos, todo lo que tenemos que convertir a segundos primero. 1 segundo = 1000 milisegundos

	var new_date = new Date (); // Crea un nuevo objeto de fecha, la hora actual predeterminada 
	var old_date = new Date ("2018-12-12 00:00:00"); // Establece un punto en el pasado, "yyyy -MM-dd HH: mm: ss "fecha formateada 
	
	var difftime = (new_date-old_date) / 1000; // Calcula la diferencia de tiempo y convierte milisegundos a segundos 
	
	var days = parseInt (difftime / 86400); // días 24 * 60 * 60 * 1000  
   	var horas = parseInt (difftime / 3600) -24 * días; // hora 60 * 60 total de horas-últimas horas = horas actuales  
   	var minutos = parseInt (difftime% 3600/60); // 
   	Minuto- (día * 24) Toma 60 segundos como un todo y toma los segundos restantes y los segundos / 60 es el número de minutos var segundos = parseInt (difftime% 60); // Toma 60 segundos como un todo y toma los segundos restantes 
   	
   	Alerta numérica ("La diferencia horaria es:" + días + "días," + horas + "horas," + minutos + "minutos," + segundos + "segundos");		

 

otro

Es importante señalar que la fecha debe calcularse obteniendo la hora del servidor a través de la función de nube, no la hora del cliente.

Supongo que te gusta

Origin blog.csdn.net/qq_29528701/article/details/107014863
Recomendado
Clasificación