Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ciekawy przypadek niedzialajcego kodu
adrian__23
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


Czess napotkalem na pewien ciekawy wg mnie przypadek:
  1. $ShiftTo="26.10.2009";
  2. echo $ShiftTo;
  3. echo "<br/>";
  4. $ShiftTo=explode('.',$ShiftTo);
  5. $ShiftTo=mktime(0,0,0,$ShiftTo[1],$ShiftTo[0],$ShiftTo[2]);
  6. $ShiftTo+=3600*24;//nextday
  7. $ShiftTo=date("d.m.Y",$ShiftTo);
  8.  
  9. echo $ShiftTo;

powinno wypisac

26.10.2009
27.10.2009


a teraz dajcie na samej gorze date
  1. $ShiftTo="25.10.2009";

wypisze sie:
25.10.2009
25.10.2009

nie wiecie dlaczego tak jest ?
moja wersja php 5.2.10

poniewaz chodzi mi o Wasze zdanie na temat tego przypadku (a moze u was dziala prawidlowo) uprzedze posty podajace mi dzialajacy kod:
  1. $ShiftTo=explode('.',$ShiftTo);
  2. $ShiftTo=mktime(0,0,0,$ShiftTo[1],$ShiftTo[0]+1,$ShiftTo[2]);
  3. $ShiftTo=date("d.m.Y",$ShiftTo);


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
jang
post
Post #2





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

Ostrzeżenie: (0%)
-----


  1. $ShiftTo=mktime(0,0,0,$ShiftToArray[1],$ShiftToArray[2],$ShiftToArray[0], 0); // <- "0" na końcu, przy "1" i "-1" też wyświetla byle co

a co wyświela bez tego "0"
  1. echo date("d.m.Y H:m:s",$ShiftTo);

a nie prościej :
  1. echo date( "Y-m-d", strtotime( "2009-10-25 +1 days" ) );


Ten post edytował jang 21.10.2009, 01:01:36


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
fander
post
Post #3





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. echo date_default_timezone_get().'<br>';
  3. date_default_timezone_set('Europe/Warsaw');
  4. $ShiftTo="25.10.2009";
  5. echo $ShiftTo;
  6. echo "<br/>";
  7. $ShiftTo=explode('.',$ShiftTo);
  8. $ShiftTo=mktime(0,0,0,$ShiftTo[1],$ShiftTo[0],$ShiftTo[2]);
  9. $ShiftTo+=3600*24;
  10. $ShiftTo=date("d.m.Y",$ShiftTo);
  11. echo $ShiftTo.'<br>';
  12.  
  13. echo mktime(0,0,0,10,25,2009).' => '.date('d.m.Y i:s:u',mktime(0,0,0,10,25,2009)).'<br>';
  14. echo mktime(0,0,0,10,25,2009)+((60*60*24)).' => '.date('d.m.Y i:s:u',mktime(0,0,0,10,25,2009)+((60*60*24))).'<br>';
  15. echo gmmktime(0,0,0,10,25,2009)+((60*60*24)).' => '.gmdate('d.m.Y i:s:u',gmmktime(0,0,0,10,25,2009)+((60*60*24))).'<br>';
  16. ?>


musisz użyć gmmktime oraz gmdate

Ten post edytował fander 21.10.2009, 11:23:56
Go to the top of the page
+Quote Post
adrian__23
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


dziekuje oba posty rozwiazaly problem
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:46