"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
date functie
en als je d'r ondersteuning voor hebt, strftime()
Vooral die laatste vind ik persoonlijk errug handig.
Dan kan je meteen naar lokale tijden en notaties (talen) omzetten.
(Met bijvoorbeeld: setlocale("LC_TIME","nl_NL.ISO_8859-1"); voor nederlandse notatie)
"The shell stopped unexpectedly and Explorer.exe was restarted."
Nederland is +0100Op vrijdag 31 augustus 2001 14:19 schreef jelmervos het volgende:
zou helemaal mooi zijn om die +0200 gelijk mee te nemen in de berekening. Dat is in dit voorbeeld goed gedaan, omdat we in Nederland in de +0200 timezone leven. Maar als het bijvoorbeeld +0300 dat er dan 1 uur bij wordt geteld.
Niet tijdens DST - Daylight Savings Time. Dan is het +0200.Nederland is +0100
[ specs ] [ Tweaker gallery ]
Dit werkt volgens mij allemaal goed nu, op het feit na dat ik geen schrikkeljaar heb ingebouwd, maar dat is 1 dag in de 4 jaar dat het 'n fout geeft, dus daar had ik geen zin meer in..
Hopelijk heb je dr nog wat aan (fouten voorbehouden natuurlijk wel)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| <? $d1 = "Thu, 30 Aug 2001 13:01:14 +0200"; $months = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); $monthdays = array(31,28,31,30,31,30,31,31,30,31,30,31); $regexd1 = "([a-zA-Z]{3}), ([0-9]{2}) ([a-zA-Z]{3}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) ([-\+])([0-9]{2})([0-9]{2})"; $d3 = ereg($regexd1, $d1, $d2); list($fulldate, $wkday, $day, $month, $year, $hour, $minute, $second, $sign, $signhour, $signminute) = $d2; for ($i = 0; $i < 12; $i++) { if ($months[$i] == $month) { $monthnr = ($i+1); } } if ($sign == "-") { $hour = ($hour - $signhour); $minute = ($minute - $signminute); } elseif ($sign == "+") { $hour = ($hour + $signhour); $minute = ($minute + $signminute); } if ($hour >= 24) { $hour = ($hour - 24); $day++; } elseif ($hour < 0) { $hour = (24 + $hour); $day--; } if ($day > $monthdays[($monthnr-1)]) { $monthnr++; if ($monthnr > 12) { $monthnr = 1; $year++; } $day = "01"; } elseif ($day < 1) { $monthnr--; if ($monthnr < 1) { $monthnr = 12; $year--; } $day = $monthdays[($monthnr-1)]; } if ($monthnr < 10) $monthnr = "0".$monthnr; if ($hour < 10) $hour = "0".$hour; if ($minute < 10) $minute = "0".$minute; echo "<b>$d1</b> (input)<br>"; echo "<b>$day-$monthnr-$year $hour:$minute:$second</b> (output)"; ?> |
Veel plezier!
"The shell stopped unexpectedly and Explorer.exe was restarted."
ziehier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
| <? $d1 = "Thu, 30 Aug 2001 13:01:14 -0245"; $months = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); $monthdays = array(31,28,31,30,31,30,31,31,30,31,30,31); $regexd1 = "([a-zA-Z]{3}), ([0-9]{2}) ([a-zA-Z]{3}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) ([-\+])([0-9]{4})"; $d3 = ereg($regexd1, $d1, $d2); list($fulldate, $wkday, $day, $month, $year, $hour, $minute, $second, $sign, $signtime) = $d2; $signhour = substr($signtime, 0, 2); $signminute = substr($signtime, 2, 3); for ($i = 0; $i < 12; $i++) { if ($months[$i] == $month) { $monthnr = ($i+1); } } $hour = ($hour + ($sign.$signhour)); $minute = ($minute + ($sign.$signminute)); if ($minute >= 60) { $minute = ($minute - 60); $hour++; } elseif ($minute < 0) { $minute = ($minute + 60); $hour--; } if ($hour >= 24) { $hour = ($hour - 24); $day++; } elseif ($hour < 0) { $hour = (24 + $hour); $day--; } if ($day > $monthdays[($monthnr-1)]) { $monthnr++; if ($monthnr > 12) { $monthnr = 1; $year++; } $day = "01"; } elseif ($day < 1) { $monthnr--; if ($monthnr < 1) { $monthnr = 12; $year--; } $day = $monthdays[($monthnr-1)]; } if ($monthnr < 10) $monthnr = "0".$monthnr; if ($hour < 10) $hour = "0".$hour; if ($minute < 10) $minute = "0".$minute; echo "<b>$d1</b> (input)<br>"; echo "<b>$day-$monthnr-$year $hour:$minute:$second</b> (output)"; ?> |
Verwijderd
1
2
3
4
| <? $blaat = strtotime("Thu, 30 Aug 2001 13:01:14 +0200"); echo date("j-n-Y G:i:s",$blaat); ?> |
Houdt meteen rekening met je schrikkeljaar etc.
Suc6!
Ligt't aan mij of doet die +0200 daar gek als je dr wat anders van maakt?Op zaterdag 01 september 2001 10:08 schreef Exodus het volgende:
Ietsje korter en 100% werkend:
PHP:
1 2 3 4 <? $blaat = strtotime("Thu, 30 Aug 2001 13:01:14 +0200"); echo date("j-n-Y G:i:s",$blaat); ?>
Houdt meteen rekening met je schrikkeljaar etc.
Suc6!
Wát andersOp zaterdag 01 september 2001 10:10 schreef Yo-L het volgende:
Ligt't aan mij of doet die +0200 daar gek als je dr wat anders van maakt?
Verwijderd
1
2
3
4
5
6
7
8
9
| <? $t = "Thu, 30 Aug 2001 13:01:14 +0200"; $blaat = strtotime($t); $hours = explode(" ",$t); $todo = substr($hours[5],0,1); $todo_rest = ((substr($hours[5],1,strlen($hours[5])) / 100) * 3600); $blaat = $blaat + $todo_rest; echo date("j-n-Y G:i:s",$blaat); ?> |
Let even niet op variabelnaampjes enzo
of dit kan, of je splits de timestamp op en doet iets als
1
2
3
| <? mktime (($aantaluren + 2),$minuten,$seconden,$maan,$dag,$jaar)); ?> |
Oh en die +0200 negeert 'ie hier gewoon.
Ik gok dat hij het beschouwd als "Dit is een timezone" niet "Dit is iets wat ik ermee moet doen"
Ik heb even een paar tests gedaan met verschillende timezone's en het bleek dat deze functie voldoet:
1
2
3
4
5
6
7
8
9
10
| <? $time = "Thu, 30 Aug 2001 13:01:14 +0200"; echo date("d-m-Y H:i:s", strtotime($time)) . "<br>"; $time = "Thu, 30 Aug 2001 13:01:14 +0100"; echo date("d-m-Y H:i:s", strtotime($time)) . "<br>"; $time = "Thu, 30 Aug 2001 13:01:14 +0000"; echo date("d-m-Y H:i:s", strtotime($time)) . "<br>"; $time = "Thu, 30 Aug 2001 13:01:14 -0100"; echo date("d-m-Y H:i:s", strtotime($time)) . "<br>"; ?> |
Geeft mij:
30-08-2001 13:01:14
30-08-2001 14:01:14
30-08-2001 15:01:14
30-08-2001 16:01:14
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
Het omzetten van een dode tijdsaanduiding snap ik, maar ik krijg het niet voor elkaar een <pubdate> uit een RSS stream om te zetten naar bijvoorbeeld 21/10 22:03.
Ik ben geen PHP-guru, maar wat ik probeer is het volgende :
$date1 = '$pubDate';
$date = date("d/m Y H:i", strtotime($date1));
Ik krijg hierdoor steeds op alles als uitkomst : 01/01 1970 00:59.
Ik hoop dat iemand mij kan uitleggen hoe ik wel de juiste omgezette pubdate kan krijgen.
Edit... aantal dingen toegevoegd om het duidelijker te maken.
[ Voor 37% gewijzigd door Verwijderd op 21-10-2004 23:43 ]
1
2
| $date1 = '$pubDate'; $date = date("d/m Y H:i", strtotime($date1)); |
Gebruikt, komt de inhoud van $pubDate eigenlijk helemaal niet bij strtotime(), want je gebruikt er enkele haakjes omheen.
En eerst in een andere variabele zetten in eigenlijk vrij nutteloos, probeer het eens zo:
1
| $date = date("d/m Y H:i", strtotime($pubDate)); |
Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337
Verwijderd
Ik krijg nu op alles 22/10 2004 00:00. Toch zou het zou niet zo moeilijk moeten zijn lijkt me. Dode tekst met Thu, 21 Oct 2004 12:01:40 GMT omzetten werkt wel.
Misschien op een of andere manier de waarde van de pubdate inlezen en als tekst aanbieden zodat die het om kan zetten. Maar hoe dat dan weer moet.
[ Voor 25% gewijzigd door Verwijderd op 22-10-2004 00:08 ]