time στα ελληνικά

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

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

Απάντηση
abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

time στα ελληνικά

Δημοσίευση από abeautifulmind » 29 Νοέμ 2011 17:23

¨Εχω αυτόν τον κώδικα

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

<?php
$sign = "+"; // Θέτεις GMT + ή - ανάλογα με την τοπική ώρα που θες. 
$h = "2"; // Θέτεις πόσες ώρες πάνω η κάτω από το GMT ανάλογα με την τοπική ώρα που θες.

// Βρίσκει διαφορά από  GMT
$hm = $h * 60;
$ms = $hm * 60;

// Θέτει την σωστή ώρα σε πραγματικό χρόνο.
if &#40;$sign == "-"&#41;&#123; $timestamp = time&#40;&#41;-&#40;$ms&#41;; &#125;
else &#123; $timestamp = time&#40;&#41;+&#40;$ms&#41;; &#125;


$mines = array&#40;'Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαϊου','Ιουνίου',
			'Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου'&#41;;
			
$meres = array&#40;'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'&#41;;
 
$time =  $meres&#91;intval&#40;date&#40;'l'&#41;&#41;+1&#93; . ' '. date&#40;'d'&#41; . '  ' . $mines&#91;intval&#40;date&#40;'m'&#41;&#41;-1&#93; . ' ' . date&#40;'Y'&#41;. ' ' . date&#40;'G&#58;i',$timestamp&#41;;

echo"$time";
?>

για εμφάνιση της ελληνικής ώρας αλλά στην ημέρα μου εμφανίζει συνέχεια Δευτέρα αν το κάνω +2 μου εμφανίζει συνέχεια Τρίτη κ.τλ. ενώ ο μήνας δουλέυει κανονικά (νομίζω :) )
Καμία ιδέα?

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

time στα ελληνικά

Δημοσίευση από vassilism » 29 Νοέμ 2011 18:40

Θέλει w

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

<?php
$sign = "+"; // Θέτεις GMT + ή - ανάλογα με την τοπική ώρα που θες.
$h = "2"; // Θέτεις πόσες ώρες πάνω η κάτω από το GMT ανάλογα με την τοπική ώρα που θες.

// Βρίσκει διαφορά από  GMT
$hm = $h * 60;
$ms = $hm * 60;

// Θέτει την σωστή ώρα σε πραγματικό χρόνο.
if &#40;$sign == "-"&#41;&#123; $timestamp = time&#40;&#41;-&#40;$ms&#41;; &#125;
else &#123; $timestamp = time&#40;&#41;+&#40;$ms&#41;; &#125;


$mines = array&#40;'Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαϊου','Ιουνίου',
         'Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου'&#41;;
         
$meres = array&#40;'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'&#41;;
 
$time =  $meres&#91;intval&#40;date&#40;'w'&#41;&#41;&#93; . ' '. date&#40;'d'&#41; . '  ' . $mines&#91;intval&#40;date&#40;'m'&#41;&#41;-1&#93; . ' ' . date&#40;'Y'&#41;. ' ' . date&#40;'G&#58;i',$timestamp&#41;;

echo"$time";
?>

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

time στα ελληνικά

Δημοσίευση από abeautifulmind » 29 Νοέμ 2011 21:03

Ευχαριστώ πολύ vassilim(ou)
να σαι καλά καμία φορά είναι τόσο απλό αλλά αν είσαι 12 ώρες στο pc σερί <<κουρκουτιάζεις>>!! :roll:

YΓ. ελπίζω και ο μήνας να μην είναι τυχαία σωστός με το -1 αλλιώς πρέπει να περιμένω μέχρι 1 Δεκεβρίόυ να το δώ :D

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

time στα ελληνικά

Δημοσίευση από vassilism » 30 Νοέμ 2011 00:30

Για του μήνες χρησιμοποίησε καλύτερα αυτό:

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

<?php
$sign = "+"; // Θέτεις GMT + ή - ανάλογα με την τοπική ώρα που θες.
$h = "2"; // Θέτεις πόσες ώρες πάνω η κάτω από το GMT ανάλογα με την τοπική ώρα που θες.

// Βρίσκει διαφορά από  GMT
$hm = $h * 60;
$ms = $hm * 60;

// Θέτει την σωστή ώρα σε πραγματικό χρόνο.
if &#40;$sign == "-"&#41;&#123; $timestamp = time&#40;&#41;-&#40;$ms&#41;; &#125;
else &#123; $timestamp = time&#40;&#41;+&#40;$ms&#41;; &#125;

	 
$mines = array&#40; 
    "01" => "Ιανουαρίου", 
    "02" => "Φεβρουαρίου",
	"03" => "Μαρτίου",
	"04" => "Απριλίου",
	"05" => "Μαϊου",
	"06" => "Ιουνίου",
	"07" => "Ιουλίου",
	"08" => "Αυγούστου",
	"09" => "Σεπτεμβρίου",
	"10" => "Οκτωβρίου",
	"11" => "Νοεμβρίου",
	"12" => "Δεκεμβρίου"&#41;;		 
         
$meres = array&#40;'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'&#41;;
 
$time =  $meres&#91;intval&#40;date&#40;'w'&#41;&#41;&#93; . ' '. date&#40;'d'&#41; . '  ' . $mines&#91;intval&#40;date&#40;'m'&#41;&#41;&#93; . ' ' . date&#40;'Y'&#41;. ' ' . date&#40;'G&#58;i',$timestamp&#41;;

echo $time;
?>
Με την ώρα τι ακριβώς θέλεις να κάνεις?
Αν θες να δείχνει την τρέχουσα ώρα, έτσι όπως είναι τώρα είναι λάθος.

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

time στα ελληνικά

Δημοσίευση από abeautifulmind » 01 Δεκ 2011 02:15

Απλά θέλω να την καταχωρώ σε μία βάση π.χ. τι ώρα έκανε κάποιος post ένα θέμα με την ημερομηνία και να την εμφανιζω από την βάση μετά σε όλους τους χρήστες

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

time στα ελληνικά

Δημοσίευση από vassilism » 01 Δεκ 2011 16:13

Χρησιμοποίησε αυτό. Δίνει την τρέχουσα ημερομηνία και ώρα Ελλάδος.

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

<?php
date_default_timezone_set&#40;'EET'&#41;; 

$meres = array&#40;'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'&#41;;
	 
$mines = array&#40; 
    "01" => "Ιανουαρίου", 
    "02" => "Φεβρουαρίου",
	"03" => "Μαρτίου",
	"04" => "Απριλίου",
	"05" => "Μαϊου",
	"06" => "Ιουνίου",
	"07" => "Ιουλίου",
	"08" => "Αυγούστου",
	"09" => "Σεπτεμβρίου",
	"10" => "Οκτωβρίου",
	"11" => "Νοεμβρίου",
	"12" => "Δεκεμβρίου"&#41;;         
 
$time = $meres&#91;intval&#40;date&#40;'w'&#41;&#41;&#93; . ' '. date&#40;'d'&#41; . '  ' . $mines&#91;intval&#40;date&#40;'m'&#41;&#41;&#93; . ' ' . date&#40;'Y'&#41;. ' ' . date&#40;'H&#58;i&#58;s'&#41;;

echo $time;
?>

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

time στα ελληνικά

Δημοσίευση από panosru » 01 Δεκ 2011 16:35

Καλύτερα να μην αποθηκεύεις την ημερομηνία στη βάση μέσω PHP αλλά να κάνεις χρήση της NOW() από τη MySQL ή new Date() αν δουλεύεις με MongoDB με τον τρόπο αυτό θα αποθηκεύεις το time() της χρονικής στιγμής εκείνης και με τον τρόπο αυτό έχεις 3 θετικά


1) Μπορείς πολύ πιο εύκολα να κάνεις ένα ORDER BY older post που λέει ο λόγος, και μια καλύτερη και πιο γρήγορη αναζήτηση

2) Μπορείς να έχεις ότι output θες, αν σήμερα θες να έχεις ΗΗ/ΜΜ/ΕΕΕΕ και αύριο θα θες ΗΗ, ΜΜ ΕΕΕΕ μπορείς πολύ πιο εύκολα να το κάνεις.

3) Αν κάποια στιγμή αποφασίσεις να κάνεις το site πολυγλωσσικό θα είναι πολύ πιο εύκολο με αυτό το τρόπο

Ωραία έστω ότι το κάνεις έτσι, πως θα εμφανίζεις το output, έστω ότι έχεις κάνει το query στη βάση και έχεις τη μεταβλητή $time που είναι ο χρόνος της στιγμής εκείνης τότε στον κώδικά σου θα έχεις κάτι τέτοιο:

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

echo strftime&#40;"%A %d %B %Y", $time&#41;;
Για να εμφανίσεις την ημερομηνία στα Ελληνικά θα πρέπει να βάλεις στην αρχή του script σου αυτό:

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

setlocale&#40;LC_TIME, 'el_GR.UTF-8'&#41;;
Σε περίπτωση που ο server σου δεν έχει το el_GR.UTF-8 locale εγκατεστημένο τότε πρέπει να το εγκαταστήσεις, αν έχεις debian είναι πολύ απλό, κάνεις loggin με ssh ως root και απλά τρέχεις dpkg-reconfigure locales και επιλέγεις τα locales που θες, σαν default locale καλό είναι να επιλέξεις none. Για να δεις ποια locales έχεις τρέχεις το command locale -a

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

time στα ελληνικά

Δημοσίευση από abeautifulmind » 04 Δεκ 2011 18:01

ευχαριστώ vasili
panoru και είμαι ικανοποιημένος με αυτό του vasili ευχαριστώ για τις πληριφορίες όμως χρήσιμες ίσως το χρειαστώ αλλού.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

time στα ελληνικά

Δημοσίευση από Apostolis_38 » 04 Δεκ 2011 19:57

Σε συμπλήρωμα αυτών που έγραψε ο panosru.
Αν σε δυσκολεύει το setlocale, ή δεν μπορείς να επέμβεις στον server, μπορείς να βάλεις αυτό:
date_default_timezone_set('Europe/Athens');

Απάντηση

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

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

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