Cómo usar fechas y horas con Google Apps Script

Este artículo se ha usado para el proyecto : Organizador de emails

En ocasiones necesitamos la fecha o la hora actual en nuestras automatizaciones con GAS.

La forma más sencilla es obtenerla directamente de javascript.

El siguiente ejemplo es suficientemente claro para ver como funciona:

function Hora()
{
   var now     = new Date();
   var year    = now.getFullYear();
   var month   = now.getMonth() + 1;
   var day     = now.getUTCDate();
   var hora    = now.getHours();
   var minutos = now.getMinutes();

   var string = day + "/" + month + "/" + year + "-" + hora + ":" +  minutos + "\n";

   SpreadsheetApp.getUi().prompt(string) ;

}


Si ejecutáis el script veréis algo del estilo de la imagen.

Ya veis que es sencillo y tiene pocas complicaciones.

20 comentarios:

  1. gracias por el ejemplo.
    Hay alguna función monthname para convertir a txt!!?

    ResponderEliminar
  2. Me parece que lo más rápido será implementar una función para que lo haga... Lo poco que he visto del tema no parece funcionar. Un poco más tarde me lo sigo mirando, gran pregunta.

    ResponderEliminar
  3. Y como hago para obtener el dia no como fecha(1,3,12,24) sino como texto (lunes,martes,jueves...). Agradecería bastante su pronta respuesta.

    ResponderEliminar
    Respuestas
    1. var dias_semana = ["domingo","lunes","martes","miercoles","jueves","viernes","sábado" ];
      Logger.log( dias_semana[now.getUTCDay()] );

      Con esto deberias tenerlo... ya que la respuesta ha sido pronta, en manera de agradecimiento podrías seguir la página o compartirla :D :D :D

      Nos vemos

      Eliminar
  4. hola como hago para escribirlo en una celad especifica una vez y otra sea modificada?

    ResponderEliminar
    Respuestas
    1. Creo que este artículo te servirá: http://googleappscriptsweb.blogspot.com.es/2015/02/como-escribir-en-una-celda-de-una-hoja.html

      Eliminar
  5. Buenos días,
    ¿Puede el formulario autorellenarse calculando la edad de la persona que rellena el formulario?
    Y, si es así, ¿puede el formulario saltar a una sección dependiendo del valor del campo "edad"?
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola,

      Se puede hacer que el formulario al rellenarse se apunte en el spreadsheet como se quiera, así que si, se podría calcular la edad.

      Ahora bien, capar secciones no veo el como. Tal vez sea posible pero desconozco como hacerlo.

      Gracias por todo

      Nos vemos

      Eliminar
    2. Gracias por responder tan rápido,
      Otra pregunta: ¿puede el formulario redirigirte a un enlace (un google doc, por ejemplo) según la respuesta dada?
      Gracias

      Eliminar
    3. Hasta donde yo se no, PERO, si le pides el correo dentro del formulario le podrias enviar a su correo el link al documento que tu quieras. No se si te serviria

      Nos vemos

      Eliminar
  6. Hola, hay alguna forma de obtener el día actual dentro de un input en app script?

    ResponderEliminar
    Respuestas
    1. No acabo de entenderte.... un "input en app script"..... Dame algún ejemplo o intenta especificar un poco más y te diré , si se, como hacerlo. En principio, todo lo referente a fechas deberia servirte este artículo..
      Coméntamelo y lo miramos

      Eliminar
  7. Hola! muchas gracias por el tutorial! tengo una consulta:
    Por alguna razón, pasadas las 20:00 hrs, el día pasa al siguiente, será algún problema con el UTCDate?
    Gracias!

    ResponderEliminar
    Respuestas
    1. Disculpa haber tardado tanto en responder, se me coló el comentario.
      El problema es que las horas que usa GAS son horas de servidor. Recuerda que GAS se ejecuta en servidor no en local. Así que usará la hora que el crea. Sino recuerdo mal creo q era la hora del pacifico. Te tocará modificar las horas para ajustar a lo que tu quieres.

      Eliminar
  8. buenos dias hay una manera de que al momento de ingresar la fecha me calcule la edad y si fuera menor de edad que salga un aviso?
    Gracias

    ResponderEliminar
  9. hola, tengo el problema de la fecha en letra no coincide con la fecha numerica, como está en el ejemplo, al mes toca sumarle +1 y al dia toca restarle 1 despues de medio dia, en la mañana da el numero del dia correcto y ya en la tarde cambia al siguiente, pero es contradictorio por que la fecha que muestra el objeto Date() si es correcta, sin importar la hora

    ResponderEliminar
  10. Hola! Gracias por tu aporte!
    Tengo hecha una función para que al ejecutar un botón me envíe ciertos elementos seleccionados a la columna de "FACTURADOS" y necesitaría consignar en la columna siguiente a fecha de facturación de esos seleccionados... ¿sería posible automatizar esto pero que previamente se pueda consignar la fecha? Porque no me sirve que cargue la fecha actual, ya que puede tratarse de elementos que fueron facturados en fechas anteriores.
    Aguardo tu respuesta si es posible. Gracias!

    ResponderEliminar
    Respuestas
    1. Hola Marina,
      Sinceramente no he acabado de entender cual es el problema, pero sino voy errado es un tema de obtener información de otra hoja y añadirla a la que te interesa.
      Si miras en los tutoriales de Google Sheets creo que puedes tener pistas de como implementarlo.
      Espero q te sirva
      Nos vemos!

      Eliminar
    2. Buenas tardes! Lo que necesito es que, al ejecutar el script, me permita colocar manualmente la fecha de copiado o de ejecución. Aguardo tu respuesta, gracias!

      Eliminar
    3. Así a bote pronto, tendrás que implementar un popup con un caja de selección de fechas. Te puedo pasar el link, está en este blog como implementarlo, pero estaria bien que lo buscaras tu, para que veas todas las opciones que hay.
      Hay varias maneras de hacerlo. Mirate un poco por encima los tutoriales y seguramente encontrarás lo mejor para tu problema.
      Si no lo ves claro, avisame

      Eliminar

Tal vez te interese