PDA

Ver la Versión Completa : [ CONSULTA ] variable %TIME en javascript


SCL_ROOT
04/08/15, 22:28:20
Estoy intentando pasar a javascript la idea del Despertador dinamico de aquí http://www.htcmania.com/showthread.php?p=8851890 y el punto es que siempre me sale "son la una y cuarto de la mañana" sea la hora que sea, si uso la función Flash con %TIME me sale la hora que tengo realmente, pero con este código la separo en %hora y %minuto y simpre me sale 0 y 15 :

var time = global("TIME").split(".");
var hora = time[0];
var minuto = time[1];
var hr;
var mn;

// escribir las horas
if (hora = 00){
hr = 12;
} else if (hora > 12){
hr = hora - 12;
if(hr = 1){
hr = "una";
}
} else {
hr = hora;
if(hr = 1){
hr = "una";
}
}

// escribir los minutos
if (minuto = 00){
mn = " en punto";
} else if (minuto = 15) {
mn = " y cuarto";
} else if (minuto = 30) {
mn = " y media";
} else if (minuto = 45) {
mn = " menos cuarto";
} else {
mn = " y " + minuto;
}

// variable global
if(hora > 12) {
if(hr = "una"){
setGlobal("AMPM","son la "+hr+mn+" de la tarde");
} else {
setGlobal("AMPM","son las "+hr+mn+" de la tarde");
}
} else {
if(hr = "una"){
setGlobal("AMPM","son la "+hr+mn+" de la mañana");
} else {
setGlobal("AMPM","son las "+hr+mn+" de la mañana");
}
}

no consigo ver que tengo mal escrito, alguna idea?

WillyWeb
05/08/15, 11:04:55
Me suena que esos "if (aaa = bbb)" tienen que llevar dos signos igual.

Si el interprete JS que usa Tasker es como todos, siendo hr=10 las comparaciones if(hr=1) e if(hr=10) dan el mismo resultado. Si pones dos signos igual sólo es válida la segunda (la que tiene que ser).

Y creo que puedes cambiar las comparaciones con "00" por un simple cero.

SCL_ROOT
05/08/15, 15:03:22
Me suena que esos "if (aaa = bbb)" tienen que llevar dos signos igual.

Si el interprete JS que usa Tasker es como todos, siendo hr=10 las comparaciones if(hr=1) e if(hr=10) dan el mismo resultado. Si pones dos signos igual sólo es válida la segunda (la que tiene que ser).

Y creo que puedes cambiar las comparaciones con "00" por un simple cero.

gracias al final era eso X-D

ahora con el código así sí que me va:
/*-------------------------------
---- Establecer hora escrita ----
-------------------------------*/

var time = global("TIME").split("."),
hr,
mn;

// escribir las horas
if (time[0] == 0) {
hr = 12;
} else if (time[0] > 12 && time[1] < 45) {
hr = time[0] - 12;
} else if (time[1] >= 45) {
hr = time[0] - 11;
} else {
hr = time[0];
}
if(hr == 1) {
hr = "una";
}

// escribir los minutos
if (time[1] == 0) {
mn = " en punto";
} else if (time[1] == 15) {
mn = " y cuarto";
} else if (time[1] > 15 && time[1] < 30) {
mn = " y cuarto pasadas";
} else if (time[1] == 30) {
mn = " y media";
} else if (time[1] > 30 && time[1] < 45) {
mn = " y media pasadas";
} else if (time[1] == 45) {
mn = " menos cuarto";
} else if (time[1] > 45 && time[1] < 50) {
mn = " menos cuarto pasadas";
} else if (time[1] == 50) {
mn = " menos diez";
} else if (time[1] > 50) {
mn = " menos " + (60 - time[1]);
} else {
mn = " y " + time[1];
}

// hora escrita
if (hr == "una") {
str1 = "son la ";
} else {
str1 = "son las ";
}
if (time[0] > 12) {
str2 = " de la tarde";
} else {
str2 = " de la mañana";
}
setGlobal("AMPM",str1 + hr + mn + str2);