corden Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 kjører opensuse 11.2, apache og php følgende kode <?php $dagen = mktime(0, 0, 0, 1, 1, 1855); echo date('Y-m-d',$dagen); ?> gir resultatet 1855-01-01 på min maskin ved overføring av koden til min ISP som også kjører Linux blir resultatet 1970-01-01 Noen som kan forklare hvordan jeg skal få ønsket resultat på ISP-serveren Lenke til kommentar
nomore Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Tja, en timestamp verdi er antall sekunder siden 1970. Så, om en timestamp verdi skal behandle år før 1970 så vil det bli en negativ verdi, noe som ikke er støttet før PHP 5.1. Mao, enten så må du endre koden så du ikke bruker timestamp, eller du må benytte en ISP som har PHP 5.1 eller nyere. Lenke til kommentar
corden Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Tja, en timestamp verdi er antall sekunder siden 1970. Så, om en timestamp verdi skal behandle år før 1970 så vil det bli en negativ verdi, noe som ikke er støttet før PHP 5.1. Mao, enten så må du endre koden så du ikke bruker timestamp, eller du må benytte en ISP som har PHP 5.1 eller nyere. ISP server bruker PHP version 5.2.9 Lenke til kommentar
nomore Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Er det et negativ verdi du får i fra funksjonen på serveren? Lenke til kommentar
Ernie Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Kanskje en ide å lese hva manualen har å si om date? Hentet fra «changelog»-delen The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). Lenke til kommentar
corden Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Er det et negativ verdi du får i fra funksjonen på serveren? Har endret koden slik <?php $dagen = mktime(0, 0, 0, 1, 1, 1855); echo date('Y-m-d',$dagen)."<br />"; echo date($dagen); ?> på min maskin er resultatet: 1855-01-01 -3629062800 På serveren : 1970-01-01 Kanskje en ide å lese hva manualen har å si om date?Hentet fra «changelog»-delen The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). Det merkelige er jo at det fungerer på min maskin Lenke til kommentar
nomore Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Merkelig ja, men koden bør uansett følge manualen. Dvs, om manualen sier at det ikke bør gjøres så bør du heller ikke gjøre det. Lenke til kommentar
Ernie Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Kanskje en ide å lese hva manualen har å si om date?Hentet fra «changelog»-delen The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). Det merkelige er jo at det fungerer på min maskin Er det mulig at du kjører 64bit lokalt og serveren 32bit? Lenke til kommentar
corden Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Kanskje en ide å lese hva manualen har å si om date?Hentet fra «changelog»-delen The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). Det merkelige er jo at det fungerer på min maskin Er det mulig at du kjører 64bit lokalt og serveren 32bit? Server kjører 32 bit får jeg vite. Vil søke å flytte over på 64 om mulig. Skal gi tilbakemelding om dette løser problemet Lenke til kommentar
corden Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Kanskje en ide å lese hva manualen har å si om date?Hentet fra «changelog»-delen The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). Det merkelige er jo at det fungerer på min maskin Er det mulig at du kjører 64bit lokalt og serveren 32bit? Server kjører 32 bit får jeg vite. Vil søke å flytte over på 64 om mulig. Skal gi tilbakemelding om dette løser problemet ISP har ikke 64 bit maskiner så jeg må bytte. Noen som har tips om rimelig og seriøs leverandør? Lenke til kommentar
Ernie Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Tror jeg heller ville vurdert en annen løsning. Hva er det som gjør at du trenger en så gammel dato og/eller må ha det som en timestamp? Lenke til kommentar
corden Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Tror jeg heller ville vurdert en annen løsning. Hva er det som gjør at du trenger en så gammel dato og/eller må ha det som en timestamp? Dette skal brukes i forbindelse med slektsforskning og trenger å vite ukedag og dato tilbake til 1500-tallet. Foreløbig løsning er å generere disse dataene på min maskin og lagre dette i en database som overføres til server. Men vil på sikt skaffe meg en ISP som leverer 64 bits server. Anser saken for løst nå. Takk for alle innspill Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå