Just nu i M3-nätverket
Gå till innehåll

Varför får jag fel datum?


MickeMick1

Rekommendera Poster

Är det någon som kan tala om varför jag inte får det förväntade resultatet av nedanstående kodsnutt.

 

Tanken är att koden ska läsa senaste ändringsdatum på filen ($fil) och skriva ut det. Vad jag än gör så blir datumet alltid 1970-1-1.

 

Här är koden:

 

$date_str = getdate(filemtime($fil));

$year = $date_str["year"];

$mon = $date_str["mon"];

$mday = $date_str["mday"];

$date_str = "$year-$mon-$mday";

print("Senast uppdaterad $date_str");

Länk till kommentar
Dela på andra webbplatser

Testa att skriva ut varje variabel steg för steg och på det sättet kontrollera var felet uppkommer. Det låter lite som om du inte skulle ha en giltig fil varför filemtime skulle returnera 0. 0-datumet för unixsystem är 1 januari 1970

 

 

==Coleburn==

 

--------------------

"It takes a lot of knowledge to

really mess something up!"

 

Länk till kommentar
Dela på andra webbplatser

Finns filen $fil, eftersom filemtime($fil) måste returnera noll (0) för att du ska få det datumet.

 

Alternativ till ditt skript för att visa fildatum:

 

Om du ska ha skriptet i samma fil som du kollar datum på går det bra med:

echo "Senast uppdaterad: ".date("Y-m-d",getlastmod());

 

I annat fall:

echo "Senast uppdaterad: ".date("Y-m-d",filemtime ($fil));

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

  • 4 years later...

Jag får också sammma feldatum med filemtime($file) (på filer som finns), har du kommit på det ?

 

Eller någon annan som vet ?

 

 

Nyinstallerat Apache och php

 

 

-

 

Länk till kommentar
Dela på andra webbplatser

Är du säker på att filen finns och att du angett sökvägen rätt? Se även till att ha varningar påslagna (när du felsöker). Så vad säger:

/* Om felrapportering inte redan är påslaget: */
error_reporting(E_ALL);
ini_set('display_errors', '1');

if (!file_exists($file))
{
 echo 'Filen finns inte...';
}

$date_str = date('Y-m-d', filemtime($file));
print("Senast uppdaterad $date_str");

 

Är modifieringstiden korrekt satt på filen, dvs vad visar ls -l filen_i_fråga?

 

Länk till kommentar
Dela på andra webbplatser

/* Om felrapportering inte redan är påslaget: */

error_reporting(E_ALL);

ini_set('display_errors', '1');

Jag får då

<b>Warning</b>: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for IMG_0226.jpg in <b>D:\public_html\getpics.php</b> on line <b>17</b><br />

January 01 1970 01:00:00.

 

Är modifieringstiden korrekt satt på filen, dvs vad visar ls -l filen_i_fråga?

Nu kör vi XP och datumen ser ok ut i explorer

 

Länk till kommentar
Dela på andra webbplatser

Jag får då

<b>Warning</b>: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for IMG_0226.jpg in <b>D:\public_html\getpics.php</b> on line <b>17</b><br />

Vilket betyder antingen att filen inte finns eller att php inte har rättighet att kolla på filen, hur nu sånt funkar i XP.

Nu kör vi XP och datumen ser ok ut i explorer
OK. Då behöver du installera Cygwin för att köra ls ;)

 

Länk till kommentar
Dela på andra webbplatser

Aha, det är ju bara filnamnet utan katalognamnet den ligger i .... kan ju vara något med det som gör att filen inte verkar finnas.

 

- relativ nybörjare ;)

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...