Τοπικη ωρα ελλαδοσ

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
MaryG
Δημοσιεύσεις: 11
Εγγραφή: 03 Νοέμ 2012 17:58

Τοπικη ωρα ελλαδοσ

Δημοσίευση από MaryG » 03 Νοέμ 2012 18:24

Το πρόβλημα:
Ο σέρβερ που νοικιάζω βρίσκεται στην Αμερική .
Στη x σελίδα θέλω να εμφανίζεται η τοπική ώρα Ελλάδος.


Η λύση:

Αν γράψουμε ..

Κώδικας: Επιλογή όλων

<?php 

echo date &#40; ' H &#58; i '   &#41; ;

?>
...θα εμφανιστεί η τοπική ώρα του σέρβερ.

Στο σέρβερ μου , η τοπική ώρα είναι 6 ώρες νωρίτερα από την ώρα της Ελλάδος
συνεπώς:

Ορίζω :

Κώδικας: Επιλογή όλων

$time = date &#40; 'H' &#41; + 6 ;
Αν για παράδειγμα η ώρα σέρβερ είναι 14:00 η δική μου θα είναι 14+6 = 20:00.
Αν όμως η ώρα σέρβερ είναι 18:00 η δική μου θα είναι 24:00???!!!!

Για να λυθεί το πρόβλημα θέτω:

Κώδικας: Επιλογή όλων

$maxtime= 18 ;
...και γράφω όλες τις υπόλοιπες πιθανότητες .

Το τελικό πρόγραμμα έχει ως εξής :

Κώδικας: Επιλογή όλων

<?php 

$server = date &#40; 'H' &#41; ;
$minutes = date &#40; 'i' &#41; ;
$time = date &#40; 'H' &#41; + 6 ;
$maxtime= 18 ;


if &#40;$server < $maxtime &#41; echo "$time&#58;$minutes";
if &#40;$server == $maxtime &#41; echo "00&#58;$minutes";
if &#40;$server == 19 &#41; echo "01&#58;$minutes";
if &#40;$server == 20 &#41; echo "02&#58;$minutes";
if &#40;$server == 21 &#41; echo "03&#58;$minutes";
if &#40;$server == 22 &#41; echo "04&#58;$minutes";
if &#40;$server == 23 &#41; echo "05&#58;$minutes";

?>

Μπορείτε να το δείτε στην πράξη στον παρακάτω σύνδεσμο:

www.wrss.eu/examples/localtime.php
Simplicity is the ultimate sophistication...
-Leonardo da Vinci


Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Τοπικη ωρα ελλαδοσ

Δημοσίευση από dva_dev » 03 Νοέμ 2012 19:24

Το κάνεις με λάθος τρόπο. Δοκίμασε κάπως έτσι:

Κώδικας: Επιλογή όλων

<?php
header&#40;'Content-type&#58; text/plain'&#41;;

date_default_timezone_set&#40;'UTC'&#41;;
$date = new DateTime&#40;&#41;;
echo 'UTC              ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'America/Chicago'&#41;&#41;;
echo 'America/Chicago  ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Atlantic/Bermuda'&#41;&#41;;
echo 'Atlantic/Bermuda ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Europe/Andorra'&#41;&#41;;
echo 'Europe/Andorra   ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Europe/Athens'&#41;&#41;;
echo 'Europe/Athens    ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;
?>

MaryG
Δημοσιεύσεις: 11
Εγγραφή: 03 Νοέμ 2012 17:58

Τοπικη ωρα ελλαδοσ

Δημοσίευση από MaryG » 03 Νοέμ 2012 21:15

dva_dev έγραψε:Το κάνεις με λάθος τρόπο. Δοκίμασε κάπως έτσι:

Κώδικας: Επιλογή όλων

<?php
header&#40;'Content-type&#58; text/plain'&#41;;

date_default_timezone_set&#40;'UTC'&#41;;
$date = new DateTime&#40;&#41;;
echo 'UTC              ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'America/Chicago'&#41;&#41;;
echo 'America/Chicago  ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Atlantic/Bermuda'&#41;&#41;;
echo 'Atlantic/Bermuda ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Europe/Andorra'&#41;&#41;;
echo 'Europe/Andorra   ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;

$date->setTimezone&#40;new DateTimeZone&#40;'Europe/Athens'&#41;&#41;;
echo 'Europe/Athens    ', $date->format&#40;'Y-m-d H&#58;i&#58;sP'&#41;, PHP_EOL;
?>


Eυχαριστώ !!
Simplicity is the ultimate sophistication...
-Leonardo da Vinci

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες