2010-12-21 9 views
7

Estoy tratando de escribir una declaración que diga "si el tiempo es esto y menos que eso". Puedo usar obtener horas y obtener min. Sin embargo, tengo problemas para combinar un horario como las 9:30.JavaScript: IF time> = 9:30 then

ejemplo,

var now = new Date(); 
var hour = now.getHours(); 
var day = now.getDay(); 
var mintues = now.getMinutes(); 

if (day == 0 && hour >= 9 && && mintues >= 30 } && hour <= 11) { 
    document.write(now); 
} 

Esto sólo si el tiempo es menor entre las 9:30 10. Tan pronto como el reloj marque las 10 minutos luego son < descansos 30 y el guión.

¿Alguna idea sobre cómo incorporar mejor la función de tiempo para hacer que esta teoría funcione?

Gracias,

+2

He sangrado su código, pero en su estado actual ni siquiera se analizará. Sugiero que eche un vistazo a https://developer.mozilla.org/en/JavaScript/Guide para aprender los conceptos básicos. –

Respuesta

6

uso new Date().getTime() vuelve milisegundos para la comparación mucho más fácil. De esta manera, no es necesario marcar hora, minuto, segundo, milisegundo. Fiddle link

var d930 = new Date(2010, 12, 21, 9, 30, 0, 0), // today 9:30:00:000 
    d931 = new Date(2010, 12, 21, 9, 31, 0, 0), // today 9:31:00:000 
    t930 = d930.getTime(), 
    t931 = d931.getTime(); 


console.log(t931 > t930); 

De esta manera su código puede comprobar en contra de un tiempo de 09:30 estática.

var time930 = new Date(2010, 12, 21, 9, 30, 0, 0).getTime(), 
    sunday = 0, 
    now = new Date(); 

if(now.getDay() == sunday && now.getTime() >= time930){ 
    /* do stuff */ 
} 
+0

Solo quiero días estáticos. Por ejemplo, todos los domingos. En su ejemplo, es para un día específico del año. ¿Cómo puedes ajustarlo? –

+0

@ user550495 - De la misma manera que usted. Edité la respuesta. –

+0

¡Creo que esto funcionará, gracias! –

0

Prueba esto:

var now = new Date(); 
var hour = now.getHours(); 
var mintues = now.getMinutes(); 

if(
     (hour*60 + mintues) > 570 && 
     hour <= 11 
    ) 
{ 
    document.write(now); 
} 
1
if the hour is less than 9, true 
or 
if hour is 9 and minutes lt 30, true 

de manera que se vería como

if ((hour < 9) || (hour == 9 && minutes < 30)) 

Use palabras a la figura de su lógica. Los símbolos son solo atajos.

1

Una forma es hacer una comparación directa en objetos de fecha. Elija un año arbitraria, mes y día, y luego incorporar sus tiempos de la siguiente manera:

var older = new Date("1980-01-01 12:15"); 
var newer = new Date("1980-01-01 12:30"); 

if (newer > older){ 
    alert("Newer time is newer"); 

} else { 
    alert ("The time is not newer"); 

} 

El MDC documentation on the Date object ayudará con algunos detalles más. La conclusión es que si desea comparar las horas, no es necesario que llame a ningún método sobre los objetos, y es posible compararlos directamente. El objeto de fecha() puede tomar una variedad de cadenas para asignar un nuevo tiempo para la instancia devuelta, estos son de la documentación del MDC:

today = new Date(); 
birthday = new Date("December 17, 1995 03:24:00"); 
birthday = new Date(1995,11,17); 
birthday = new Date(1995,11,17,3,24,0); 

Como se puede ver, es bastante simple. No complicar, y echar un vistazo a través de la documentación :)

Ya que estamos aquí, aquí está una prueba usando tu ejemplo:

var base = new Date("1980-01-01 9:30"); 
var test = new Date("1980-01-01 9:30:01"); 

if (test >= base){ 
    alert("test time is newer or equal to base time"); 

} else { 
    alert ("test time is older than 9.30"); 

} 
2

Usted tiene algunas erratas y errores de javascript básicas.
Quizás quieras repasar lo básico.
W3Schools es donde aprendí todo lo que sé. Funciona bien si a solucionarlos ...

var now = new Date(); 
    var hour = now.getHours(); 
    var day = now.getDay(); 
    var minutes = now.getMinutes(); 
    if(day == 0 && hour == 9 && minutes < 30 && minutes > 10 || day == 0 && hour == 9) 
     document.write('Time is between 9:10 and 9:30'); 

pienso en la sentencia if como lógica básica.
Si el día es Domingo (0)
Y la hora es 9
Y los minutos son mayores que 10 Y los minutos están a menos de 10 o el día es Domingo (0)
Y la hora es antes 9.

+0

+1 para recomendar W3Schools. Sus tutoriales son informativos y no son tan inexactos como lo que todos dicen que son. –

0

No entiendo del todo su pregunta, pero espero que esto ayude.

c = new Date(); 
nhour = c.getHours(); 
nmin = c.getMinutes(); 

if(nmin <= 9) { 
    nmin = "0" + nmin; 
} 
if(nhour <= 9) { 
    nhour = "0" + nhour; 
} 

newtime = nhour + "" + nmin; 

if(newtime <= 0930){ 
    alert("It is before 9:30am or earlier"); 
} 
2
var now = new Date(); 
    var closeTime = new Date(); 
    closeTime.setHours(9); closeTime.setMinutes(30); 
    console.log(now, closeTime, now.getTime() >= closeTime.getTime()); 

hora de cierre se basa en la actualidad, a continuación, simplemente cambiamos las horas y los minutos para las 9:30.

Cuestiones relacionadas