Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Conversione date

    Ciao a tutti!
    Ho provato a leggere qua e là sul forum se c'era la riposta alla mia domanda, ma non l'ho trovata....
    La domanda è la seguente:
    tramite questo codice

    $date_conv = localtime($date)

    sono riuscita a convertire la data contenuta nel campo di una tabella dal formato "12597651" al formato "Tue Sep 13 10:57:42 2005",
    però quello che mi serve è convertirla nel formato "13/09/2005 10:57:42" : qualcuno saprebbe aiutarmi?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    Puoi fare così:

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isd st)=localtime(time);

    $year=$year+1900;
    $mon++;
    if ($mon<10)
    {$mon="0$mon"}
    if ($hour<10)
    {$hour="0$hour"}
    if ($min<10)
    {$min="0$min"}


    $data="$mday/$mon/$year $hour:$min:$sec";

  3. #3
    Perfetto!!!
    Grazie mille!!!

  4. #4
    Vista la pertinenza di questo threa io avrei circa la stessa esigenza per la precisione avrei la necessità di farmi restituire un mese indietro.
    Potete aiutarmi.
    ....Già perchè è uno sporco lavoro ma qualcuno lo deve pur fare

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per "mese intero" intendi un mese scritto in lettere per intero?

    Il Perl non ha in se la conoscenza dei nomi dei mesi.
    Con la tecnica proposta da MARTEDI (prima riga) ricavi i numeeri corrispondenti.
    Come vedi il mese e` un numero compreso tra 0 (corrisp. a gennaio) e 11 (dicembre).
    Quindi devi fornire tu un vettore contenente i nomi dei mesi ed estrarre il mese che ti interessa:
    codice:
    my @nomimesi = ("gennaio", "febbraio", ...);
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
    my $mesecorrente = $nomimesi($mon);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Ciao Mich_
    in realtà avrei la necessità di calcolare un mese indietro in formato numerico.
    Per esatezza localtime torna 08 oggi che è settembre a questo valore ritornato da localtime devo calcolare -1 per poter ottenere il mese corretto;tutto questo in funzione del fatto che i nomi file che intendo spostare con questo script portano la data nel nome file.
    Ciao Thanks
    ....Già perchè è uno sporco lavoro ma qualcuno lo deve pur fare

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da lupo987
    Ciao Mich_
    in realtà avrei la necessità di calcolare un mese indietro in formato numerico.
    Per esatezza localtime torna 08 oggi che è settembre a questo valore ritornato da localtime devo calcolare -1 per poter ottenere il mese corretto;tutto questo in funzione del fatto che i nomi file che intendo spostare con questo script portano la data nel nome file.
    Ciao Thanks
    Non ho capito.

    >> localtime torna 08 oggi che è settembre
    E` corretto. In Perl il numero dei mesi inzia da 0 (infatti occorre aggiungere 1 per avere il valore che usiamo comunemente)

    Fa' un esempio di data che hai e dell'output che ti interessa.
    E verifica che sia sempre scritta in modo coerente (sempre in italiano /oppure inglese, sempre con tre lettere/per esteso, senza erorri di ortografia, ...)

    Tieni presente che localtime/gmtime si puo` usare in due modi (anche se dal punto di vista del programmatore e` psempre la stessa) cambiando l'argomento su cui agisce la funzione stessa:
    - per ricavare la data/ora odierna (inserendo la funzione time)
    - per ricavare una data diversa (inserendo la data in un formato particolare)


    PS. ora rileggendo bene la tua richeista inizale, vedo che avevo interpretato male una parola (e magari generato confusione inutile)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Allora io ho un output di questo genere
    201009 (ma questo solo perchè alla variabile mese aggiungo +1).
    Il mio nome file da archiviare hanno questa info NAME_XXX_20090811.xml
    lo script che devo fare parte in crontab da una macchina HP-UX e dalla directory devo andare a prendere i soli file con nome NAME_XXX_200908
    Dove 08 è il mese di Agosto come potrei a questo appunto gestire tale problema il print se sottrago -1 viene fuori 8 e non 08.
    Ciao
    ....Già perchè è uno sporco lavoro ma qualcuno lo deve pur fare

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ancora non riesco a capire esattamente.

    Provo a riassumere quanto ho capito:
    - Tu hai in un database (o una dir contenente file di database?) una serie di nomi del tipo NAME_XXX_20090811.xml dove le cifre rappresentano AAAAMMGG di una data
    - Vuoi estrarre tutti i file/nomi in cui la stringa corrisponde al mese corrente (anche anno, oppure tutti i mesi uguali in tutti gli anni passati?)

    Inizio a scrivere il procedimento Perl.
    codice:
      my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
      my $meseoggi = sprintf "%02d", ($mon+1);             # converte in stringa di due cifre
      my $annooggi = sprintf "%04d", ($year+1900);         # se serve anche anno
      ... inizio loop {
        legge il prossimo elemento da verificare
        qui la RE per verificare se il le stringhe coincidono
          se coincidono ...
          se non coincidono, prosegui il loop
      }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Ottimo grazie del tuo aiuto ho risolto con questo poco di codice che hai postato.
    ....Già perchè è uno sporco lavoro ma qualcuno lo deve pur fare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.