μπέρδεμα με datetime τιμές!

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

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

Απάντηση
trilos021
Δημοσιεύσεις: 131
Εγγραφή: 04 Νοέμ 2003 18:06

μπέρδεμα με datetime τιμές!

Δημοσίευση από trilos021 » 02 Απρ 2011 22:56

έχω αποθηκεύσει σε μία μεταβλητή $ekdilwsi μία συγκεκριμένη τιμή τύπου datetime (YY-MM-DD 00:00:00) που τη παίρνω από mysql πίνακα, αλλά και σε μια άλλη μεταβλητή τη current datetime (τη "σημερινή ημερομηνία").πώς μπορώ να φτιάξω ένα script που να μου επιστέφει το σε πόσες μερες θα γίνει η εκδήλωση ή αν έχει περάσει?

Υ.Γ:Ευχαριστώ εκ των υστέρων!

Akina
Δημοσιεύσεις: 89
Εγγραφή: 25 Νοέμ 2009 18:31

μπέρδεμα με datetime τιμές!

Δημοσίευση από Akina » 03 Απρ 2011 06:27

Nομίζω ότι η μια μεταβλητή στην βάση σου είναι άχρηστη ...
Ξεκινάς από το να βρείς την διαφορα μεταξύ τις ημερομηνίας που έχεις στην βάση και στο τώρα

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

date_default_timezone_set('Europe/Athens'); //PHP 5.1.0

 $eventDate =strtotime( $baseDate ); 
 $now =strtotime( "now" );
 $sec= $eventDate - $now;

Mε αυτό βρίσκεις την διαφορα σε sec τον δυο ημερομηνιών και προφανώς τον αν έχει περάσει.

Για javasrips χρειάζεται λίγο περισσότερος κώδικας ρίσκε μια ματια στην Date.UTC
http://www.w3schools.com/jsref/jsref_utc.asp

trilos021
Δημοσιεύσεις: 131
Εγγραφή: 04 Νοέμ 2003 18:06

μπέρδεμα με datetime τιμές!

Δημοσίευση από trilos021 » 04 Απρ 2011 21:16

χίλια ευχαριστώ! τώρα προσπαθώ με query να εμφανίσω όλες τις εκδηλώσεις και όσες απ αυτές είναι σήμερα (κάποιες έχουν start_date & end_date) να έχουν μπροστά τη λέξη σήμερα

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

date_default_timezone_set('Europe/Athens'); //PHP 5.1.0

 $eventDate =strtotime( $row['start_date'] );
 $endDate = strtotime($row['end_time']);
 $now =strtotime( "now" );
 $sec= $eventDate - $now;
 $sec_end = $endDate - $now;
 $sec2_end = intval($sec_end/24/60/60);
$sec2=intval($sec/24/60/60);

do{
 echo "<b>Σήμερα</b>&#58; ".$row&#91;'titlos_dr'&#93;." είναι σήμερα";
&#125; while &#40;$sec2==0 && $sec2_end <>0&#41;
Το θέμα είναι πώς αντί για do-while να το κάνω for else έτσι ώστε να μ εμφανίζει και τις εκδηλώσεις που έχουν περάσει χωρίς μπροστά το "ΣΉΜΕΡΑ"! καμια ιδέα??

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

μπέρδεμα με datetime τιμές!

Δημοσίευση από mrpc » 04 Απρ 2011 21:27

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

if &#40;$sec2==0 && $sec2_end <>0&#41; &#123;
echo "<b>Σήμερα</b>&#58; ".$row&#91;'titlos_dr'&#93;." είναι σήμερα";
&#125;
else &#123;
echo $row&#91;'titlos_dr'&#93;;
&#125;
κάτι τέτοιο;
Δεν κατάλαβα γιατί χρησιμοποιείς do/while.

trilos021
Δημοσιεύσεις: 131
Εγγραφή: 04 Νοέμ 2003 18:06

μπέρδεμα με datetime τιμές!

Δημοσίευση από trilos021 » 04 Απρ 2011 21:40

πφφφφ εχω πείξει τοσες ώρες με τη php,μάλλον καλύτερα να πάω για ύπνο!!χίλια ευχαριστώ!

trilos021
Δημοσιεύσεις: 131
Εγγραφή: 04 Νοέμ 2003 18:06

μπέρδεμα με datetime τιμές!

Δημοσίευση από trilos021 » 05 Απρ 2011 06:56

το πρόβλημα είναι στο χρονικό διάστημα αφού όταν περνάει η πρώτη μέρα ενός event (start_date) εξαφανίζεται το ΣΗΜΕΡΑ και το event "περνάει" στο else.
προφανώς γιατί παύει να ισχύει το $sec2==0 !

Απάντηση

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

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

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