mkdate και σύγκριση ημερομηνίας...

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

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

Απάντηση
Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 27 Δεκ 2006 13:10

cool! Ευχαριστώ Darkchilde! Και πώς θα μπορούσαμε να κάνουμε τον υπολογισμό αν οι 10 ημέρες ήταν configurable από το admin panel? Δηλαδή αν την τιμή 10 ημέρες την βάζαμε 5 ημέρες πώς θα μπορούσαμε να κάνουμε τον υπολογισμό;

Ευχαριστώ πολύ!

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από zeppos » 27 Δεκ 2006 13:52

Η date πρέπει να εισάγεται με timestamp όπως σου είπαν πριν και οι άλλοι φίλοι για ευκολία. Μην σε ανησυχεί η μορφή σε έναν αριθμό γιατί πολύ εύκολα μπορείς να την εκτυπώσεις με όποια μορφή σου αρέσει πχ:

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

<?php
$register = time&#40;&#41;;
echo "Timestamp&#58; " .$register." = ";
echo date&#40;"D d-m-Y, G&#58;i&#58;s A", $register&#41;;
?>
Εάν λοιπόν την έχεις εισάγει με αριθμό είναι πολύ εύκολο να την συγκρίνεις όπως σου είπαν, αποφεύγοντας τον διαχωρισμό της σε μήνα,ημέρα, έτος.
Για να έχεις πλήρη έλεγχο στον αριθμό ημερών που θέτεις σαν όριο, πρέπει να ορίσεις ένα limit. Και τότε βέβαια ο πολλαπλασιασμός θα είναι με την τιμή του limit. Δηλαδή:

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

$limit='5';
$ban = $register + &#40;60*60*24*$limit&#41;;
Εχουμε λοιπόν και τις 2 τιμές που θέλουμε να συγκρίνουμε σε έναν αριθμό. Οπότε κάνουμε την σύγκριση:

Και συνεχίζεις έτσι εύκολα να ειδοποιείς αν δεν έχει περάσει το όριο, πόσες ημέρες μένουν ακόμη και ίσως και αν η διαφορά είναι μηδέν, δηλαδή το όριο είναι μηδέν, τότε του λες ΠΡΟΣΟΧΉ! Σήμερα τελειώνουμε!

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 27 Δεκ 2006 15:53

παιδιά έχετε δίκιο. Είχα δει και άλλες εφαρμογές να χρησιμοποιούν την time(), αλλά δεν είχα καταλάβει τον λόγο. Απ' ότι βλέπω, είναι πολύ πιο εύκολη στην χρήση, αλλά και πολύ πιο εύκολα μπορούμε να την επεξεργαστούμε ή να την εμφανίσουμε σε όποια μορφή θέλουμε!

Ευχαριστώ πολύ!


EDIT: Τα κατάλαβα όλα όσα είπατε, αλλά δεν μπορώ να τα κάνω πράξη:

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

<?php

$current_time = time&#40;&#41;;
$begin = '1167228819'; // Wed 27-12-2006, 16&#58;13&#58;39 PM
$limit = '5';
$ban = $current_time + &#40;60 * 60 * 24 * $limit&#41;;

if &#40; $today = date&#40;"d/m/Y/", $ban&#41; &#41;
&#123;
	echo 'You are Banned';
&#125;
else
&#123;
	echo 'Not Banned';
&#125;

?>
αλλά δεν δουλεύει γιατί έκανα βλακεία και δεν ξέρω που ακριβώς θα βάλω την ημερομηνία του $begin. Αν μπορείτε να με βοηθήσετε με αυτό το μπέρδεμα που έκανα παραπάνω, θα το εκτιμούσα. Ευχαριστώ για τον χρόνο σας και την βοήθειά σας!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από fafos » 27 Δεκ 2006 17:12

Gia mia tetoia praksh den xreiazete metatroph se real date.. mono timestamps:

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

<?php

$current_time = time&#40;&#41;;
$begin ='1167228819'; // Wed 27-12-2006, 16&#58;13&#58;39 PM
$limit = &#40;5 * 86400&#41;;//5hmeros ypologismos
$ban = $current_time - $begin;//vriskoume thn diafora tou tora me thn hmera kataxorhshs

if &#40; $ban >=  $limit&#41;// koitame na doume an exei perasei to orio
&#123;
   echo 'You are Banned';
&#125;
else
&#123;
   echo 'Not Banned';
&#125;

?> 
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 27 Δεκ 2006 18:45

Τέλεια, ευχαριστώ! Μόνο μία ερώτηση...

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

$limit = &#40;5 * 86400&#41;;//5hmeros ypologismos 
το 5 θα μπορούσε να το παίρνουμε από ένα field της db και αν ήταν πχ 6, 7 ή οτιδήποτε άλλο θα δούλευε γιατί βλέπω ότι έβαλες 86400 (που είναι τα δευτερόλεπτα της μίας ημέρας, σωστά; ) και θα δούλευε σωστά!

Δηλαδή θα μπορούσε να είναι και:

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

$limit = &#40;$row&#91;'dates'&#93; * 86400&#41;;
Ευχαριστώ πάρα πολύ για την βοήθεια και τον χρόνο σας παιδιά!

EDIT: Και αν θέλουμε να δούμε το αποτέλεσμα του $ban πόσο είναι (σε ημέρες) ???

η μεταβλητή: $ban = $current_time - $begin;

αλλά πως θα το κάνουμε το αποτέλεσμα που θα βγάλει σε αριθμούς να το κάνουμε ημερομηνία σε μορφή που μπορούμε να το διαβάσουμε; OK, κάναμε τον έλεγχο από ημερομηνία σε timestamp, αλλά να μην ξέρουμε πώς θα γίνει και από timestamp σε date?

Ευχαριστώ!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από fafos » 27 Δεκ 2006 19:22

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

print date&#40;"n ημέρες H ώρες i λεπτά και s δευτερόλεπτα",-57600 +$ban&#41;;
Panimais? :D
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 27 Δεκ 2006 21:17

sorry αλλά τι σημαίνει το "Panimais?" ???????

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από fafos » 27 Δεκ 2006 22:56

_Invisible_ έγραψε:sorry αλλά τι σημαίνει το "Panimais?" ???????
Ti Rosofermenos eisai? :D niet panimais?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

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

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από panosru » 28 Δεκ 2006 11:11

_Invisible_ έγραψε:sorry αλλά τι σημαίνει το "Panimais?" ???????
Ftousou re! :lol: :P

Edit:
Tha prepei na sou kano idietera Rossikhs glossas over msn :lol:

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 28 Δεκ 2006 11:31

OMG OMG OMG Rossika einai!!!! LOL ego to diabasa san Greeklish! LOOOOOOOOOOL

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 29 Δεκ 2006 02:01

Για έναν πολύ περίεργο λόγο μόλις έβαλα αυτό:

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

print date&#40;"n hmeres H wres i lepta kai s deuterolepta",-57600 +$ban&#41;;
πήρα αυτό:
1 0701Europe/HelsinkiThu, 01 Jan 1970 19:49:04 +0200Europe/Helsinki04 19 4Thu, 01 Jan 1970 19:49:04 +0200Europe/Helsinki04 49 ThursdayEurope/Helsinkip31pm kpm49 04 01Europe/Helsinkiu31Europe/HelsinkiThu, 01 Jan 1970 19:49:04 +02001970ThursdayEurope/Helsinkip31pm

και ο παραπάνω κώδικας ήταν:

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

$current_time = time&#40;&#41;;
$begin = $row&#91;'registration_time'&#93;;
$limit = &#40;$config&#91;'days_to_use'&#93; * 86400&#41;;
$ban = $current_time - $begin;
παιδιά αν κάνω κάτι λάθος πείτε μου... αντί να πάρω πόσες μέρες έμειναν... πήρα αυτό το περίεργο αποτέλεσμα:
1 0701Europe/HelsinkiThu, 01 Jan 1970 19:49:04 +0200Europe/Helsinki04 19 4Thu, 01 Jan 1970 19:49:04 +0200Europe/Helsinki04 49 ThursdayEurope/Helsinkip31pm kpm49 04 01Europe/Helsinkiu31Europe/HelsinkiThu, 01 Jan 1970 19:49:04 +02001970ThursdayEurope/Helsinkip31pm
Δεν είμαστε καλά...

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

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από panosru » 29 Δεκ 2006 16:20

Des ligo to paradigma mou isos katafereis na bgaleis akrh ;)

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

$end = array
&#40;
	'days'	=>	1,  // Meres pou apomenoun gia thn lyksh
	'hours'	=>	24, // Ores pou apomenoun gia thn lyksh
	'mins'	=>	60, // Lepta pou apomenoun gia thn lyksh
	'secs'	=>	60  // Deyterolepta pou apomenoun gia thn lyksh
&#41;;

$time = array&#40;&#41;;
$time&#91;'start'&#93; = 1167319107; // To unix timestamp ths enarkshs ths eggrafhs
$time&#91;'current'&#93; = time&#40;&#41;; // Trexon timestamp
$time&#91;'end'&#93; = $time&#91;'start'&#93; + &#40;$end&#91;'days'&#93; * $end&#91;'hours'&#93; * $end&#91;'mins'&#93; * $end&#91;'secs'&#93;&#41;; // Teliko timestamp
/**
 * Eksisoh&#58;
 * 
 * TELIKO = TREXON + &#40;TELIKOS_ARITHMOS_HMERON * TELIKOS_ARITHMOS_ORON * TELIKOS_ARITHMOS_LEPTON * TELIKOS_ARITHMOS_DEYTEROLEPTON&#41;;
 */
$time&#91;'left'&#93; = $time&#91;'end'&#93; - $time&#91;'current'&#93;;

$left = array
&#40;
	'days'	=>	$time&#91;'left'&#93;/60/60/24,
	'hours'	=>	$time&#91;'left'&#93;/60/60%24,
	'mins'	=>	$time&#91;'left'&#93;/60%60,
	'secs'	=>	$time&#91;'left'&#93;%60
&#41;;

/*
echo 'start&#58; '.date&#40;'r',$time&#91;'start'&#93;&#41;.'<br />';
echo 'end&#58; '.date&#40;'r',$time&#91;'end'&#93;&#41;.'<br />';
*/

if &#40;$time&#91;'left'&#93; < 0&#41;
&#123;
	echo 'Ο χρόνος σας τελείωσε';
&#125;
else 
&#123;
	printf&#40;'Απομένουν %d μέρες %d ώρες %d λεπτά %d δευτερόλεπτα',$left&#91;'days'&#93;,$left&#91;'hours'&#93;,$left&#91;'mins'&#93;,$left&#91;'secs'&#93;&#41;;
&#125;
EDIT:
Katse na to ksana do giati ap' oti eida den einai ayto pou thes lol :P

EDIT2:
Eisai ok tora.
Τελευταία επεξεργασία από το μέλος panosru την 29 Δεκ 2006 17:56, έχει επεξεργασθεί 2 φορές συνολικά.

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

mkdate και σύγκριση ημερομηνίας...

Δημοσίευση από _Invisible_ » 29 Δεκ 2006 16:33

thanks man ακριβώς ότι χρειαζόμουν! Να 'σαι καλά! Σας ευχαριστώ όλους για τις απαντήσεις σας.

Απάντηση

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

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

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