date time .....

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

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

Απάντηση
NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 11:24

Καλημέρα σας θα ήθελα την βοήθεια σας , έχω μια σελίδα οπού βάζω κάποια folios ας πούμε και θέλω όταν το εισάγω ένα να μπαίνει σε κατάσταση υπό κατασκευή (δλδ να δείχνει σαν εικονίδιο το under construction) για ένα χρονικό διάστημα π επιλεγώ εγώ πχ λίγες ώρες, λεπτά ή και μέρες και ύστερα από αυτό το χρονικό διάστημα να φαίνεται έτοιμο (να εμφανίζετε η εικόνα του folio) . Κατά την διάρκεια όμως της κατασκευης να φαίνεται και πόση ώρα ή μέρες απομένουν (σαν να μετράει αντίστροφα ένα πράμα). Είχα κάνει κάτι το οποίο φαινόταν να λειτουργεί αλλά τελικά όποτε αυτό ήθελε μετά από καιρό τα έβαζε υπό κατασκευή τα folios και το διέγραψα από το σπάσιμο . Τώρα το ξεκινάω ξανά σας παρακαλώ αν μπορείτε βοηθήστε.

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 12:09

Καλημέρα!
Δεν ξέρω αν είναι αρκετά αναλυτικά τα παρακάτω αλλά φαντάζομαι ότι θα μπορούσε να γίνει κάτι σαν το εξής:
Στην σελίδα εισαγωγής θα πρέπει να έχεις ένα πεδίο παράδειγμα "Under construction until" στπ οποίο θα εισάγεις το χρόνο που θέλεις εσύ. Χρήσιμη εδώ θα μπορούσε να είναι η strtotime() function. Το timestamp αυτό θα αποθηκευόταν στη βάση.
Μετά στη σελίδα που φαίνονται τα folios θα μπορούσες να έχεις:

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

if &#40;$folio&#91;'timestamp'&#93; <= time&#40;&#41;&#41; &#123;
    // To folio einai energo opote parousiase tin eikona tou
    echo "<img src=\"" . $folio&#91;'image'&#93; . "\" />";
&#125; else &#123;
    // To folio einai anenergo opote parousiase tin default eikona
    // kai ektupose posos xronos apomenei mexri na einai energo
    echo "<img src=\"" . $pathToUnderConstructionImage . "\" />";
    echo "Θα είναι ενεργό σε&#58; " . $days ." μέρες, ". $hours . " ώρες, " . $secs . " δευτερόλεπτα.";
&#125;

&#125;
Όλο αυτό θα ήταν σε ένα while που θα διάβαζε τις εγγραφές των folio από την βάση.
Οι μεταβλητές $days, $hours, $secs υπολογίζονται με συνάρτηση όπως η εξής: www.corecoding.com/php-seconds-conversion_c34.html που θα παίρνει σαν παράμετρο $s = $folio['timestamp'] - time().
Χοντρικά έτσι θα μπορούσε να γίνει αν έχω καταλάβει καλά αυτό που θες.
(Λάθη και παραλείψεις οφείλονται στο πρωινό της ώρας και στο ότι δεν έχω φτάσει ούτε στα μισά της κούπας ;) )
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 12:31

to $folio['timestamp'] as pome tha einai auto pou vgenei apo tin vasi m?

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 12:38

Ναι, είναι αυτό που αποθήκευσες στη σελίδα εισαγωγής των folio (πεδίο "Under construction until") και υποθέτοντας βέβαια ότι η τιμή αυτή αποθηκεύεται στη βάση σε column με όνομα "timestamp".
Παράδειγμα αν γράψεις στο πεδίο "Under construction until" κάτι σαν "+2 days", η strtotime θα σου επιστρέψει μια τιμή πχ 123456789 την οποία και αποθηκεύεις ως "timestamp".
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 12:53

na se rotisw epidi psilo mplokara pos tha efarmoso tin function gia tis meres wres.....???
tin evala kai vgazei kati tetio "14885d 8h 43m 15s Time " enw t exw prosthesei +24 hours

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 13:11

Στην αρχής της σελίδας μπορείς να έχεις:

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

function strTime&#40;$s&#41; &#123;
  $time&#91;'days'&#93; = intval&#40;$s/86400&#41;;
  $s -= $time&#91;'days'&#93;*86400;

  $time&#91;'hours'&#93; = intval&#40;$s/3600&#41;;
  $s -= $time&#91;'hours'&#93;*3600;

  $time&#91;'minutes'&#93; = intval&#40;$s/60&#41;;
  $s -= $time&#91;'minutes'&#93;*60;

  return $time;
&#125;
Μετά ο κύριος κορμός του κώδικα μπορεί να είναι κάτι σαν:

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

while &#40;$folio = mysql_fetch_assoc&#40;$result&#41;&#41; &#123;
    if &#40;$folio&#91;'timestamp'&#93; <= time&#40;&#41;&#41; &#123;
        // To folio einai energo opote parousiase tin eikona tou
        echo "<img src=\"" . $folio&#91;'image'&#93; . "\" />";
    &#125; else &#123;
        //Ypologise ton xrono pou apomenei
        $diff = strTime&#40;$folio&#91;'timestamp'&#93; - time&#40;&#41;&#41;;

        // To folio einai anenergo opote parousiase tin default eikona
        // kai ektupose posos xronos apomenei mexri na einai energo
        echo "<img src=\"" . $pathToUnderConstructionImage . "\" />";
        echo "Θα είναι ενεργό σε&#58; " . $diff&#91;'days'&#93; ." μέρες, ". $diff&#91;'hours'&#93; . " ώρες, " . $diff&#91;'minutes'&#93; . " λεπτά.";
    &#125;
&#125;
Κατά προσέγγιση πάντα... :)
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 13:17

ok stin vasi m exw to apotelesma autou strtotime("+1 hour") dld 1286014089 kai pali to apotelesma einai
Θα είναι ενεργό σε: 5 μέρες, 5 ώρες, 5 λεπτά.
kati lathos prepei na pezei p den exw dei oute egw akoma

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 13:21

χμμ, για μισο να το περασω και εγω απο ελεγχο :p
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 13:28

loipon i leitourgia me tis eikones allazei apoti fenete kanonika an gyrisw to roloi t server mia wra mprosta emfanizete to folio kai feugei to under constraction alla to posos xronos periseuei einai lathos

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 13:36

Χμμ.
Εμένα πάλι μου δουλεύει κανονικά. Αν βάλω σαν timestamp το 1286014089 (12:17 + 1 hour) μου εμφανίζει αποτέλεσμα ότι θα είναι ενεργό σε 35 λεπτα.
Μπορείς να κάνεις paste τον κώδικα;
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

date time .....

Δημοσίευση από NDH » 02 Οκτ 2010 13:47

loipon exeis apoluto dikio douleuei egw eixa lathos function stin arxi t script apo auti p edoses sygnomi gia ton parapanw kopo tha ftaiei p koimithima 3 wres xaxa
pantos se euxaristw para polu!!!

Άβαταρ μέλους
jjim50
Δημοσιεύσεις: 48
Εγγραφή: 02 Φεβ 2009 15:37
Τοποθεσία: Ηράκλειο
Επικοινωνία:

date time .....

Δημοσίευση από jjim50 » 02 Οκτ 2010 13:51

Δεν είναι κόπος, μαρέσουν αυτά τα μικρά προβληματάκια, με βοηθάει στο να μη ξεχάσω παντελώς και αυτά που ήξερα (μιας και πλέον απασχολούμαι σαν sys admin)! Εγώ πάντως είμαι στον δεύτερό μου καφέ για σήμερα...!
www.cobaltblue.gr - Φιλικό hosting, πρωτότυπη εξυπηρέτηση.

Απάντηση

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

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

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