Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 > function getDateFormatted(new_date){ var day = new_date.getDate(); var month = new_date.getMonth() + 1; var year = new_date.getFullYear(); return day + "/" + month + "/" + year; } if (diff_date > 12) {var Result = ("Παρακαλούμε επικοινωνήστε μαζί μας.Ο εμβολιασμός έπρεπε να γίνει " + getDateFormatted(new_date));} if (diff_date < 12) {var Result = ("Ο εμβολιασμός πρεπεi να γίνει " + getDateFormatted(new_date));} natural_sgf με τη function που μου έδωσες όντος παρουσιάζει την ημερομηνία μόνο που μπερδευει τη σειρα. πχ demo4 αν δώσεις 12/4/2009 ο υπολογισμός θα επιστρέψει 4/12/2010
Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 αυτό φαίνεται να δουλεύει.. > var foo = Math.round(new Date(getDateFromFormat(this.form.date1.value,'d/M/y')))+31536000000; alert(new Date(foo))"> orotoi δες το demo5 δε κατάλαβα πως να χρησιμοποιήσω τον κώδικα που μου έδωσες. Μάλλον έχω μπερδευτεί λίγο. Μου επιστρέφει αριθμούς.
orotoi Δημοσ. 11 Δεκεμβρίου 2010 Δημοσ. 11 Δεκεμβρίου 2010 στο αποτέλεσμα θα δώσεις το format που θες με την formatDate Είναι ο αριθμός των milliseconds που έχει περάσει απο την 1/1/1970 (αυτή είναι η μορφή που κρατιέται η ημερομηνία.. γι' αυτό μπορείς να κάνεις και τις πράξεις date2 - date1 ή συγκρίσεις date2 < date1 κτλ) Αν δώσεις σαν όρισμα στην new Date(ari8mo_milliseconds) θα σου επιστρέψει την ημ/νια στην long version.. με την formatDate της βιβλιοθήκης date.js που χρησιμοποιείς θα της δώσεις τη μορφή που θες.
Επισκέπτης Δημοσ. 11 Δεκεμβρίου 2010 Δημοσ. 11 Δεκεμβρίου 2010 natural_sgf με τη function που μου έδωσες όντος παρουσιάζει την ημερομηνία μόνο που μπερδευει τη σειρα. πχ demo4 αν δώσεις 12/4/2009 ο υπολογισμός θα επιστρέψει 4/12/2010 δεν φταίει αυτό που σου έδωσα, αλλά η αρχική ημερομηνία που έχεις... για να πειστείς, τρέξε χώρια τον κώδικα κάπως έτσι: > var date = new Date(); alert(date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear());
Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 στο αποτέλεσμα θα δώσεις το format που θες με την formatDate Είναι ο αριθμός των milliseconds που έχει περάσει απο την 1/1/1970 (αυτή είναι η μορφή που κρατιέται η ημερομηνία.. γι' αυτό μπορείς να κάνεις και τις πράξεις date2 - date1 ή συγκρίσεις date2 < date1 κτλ) Αν δώσεις σαν όρισμα στην new Date(ari8mo_milliseconds) θα σου επιστρέψει την ημ/νια στην long version.. με την formatDate της βιβλιοθήκης date.js που χρησιμοποιείς θα της δώσεις τη μορφή που θες. Αν κατάλαβα καλά πρέπει να περάσω τη μεταβλητή foo απο την formatDate δηλαδή var foo = formatDate(foo, 'd/M/y'); έτσι? var foo = Math.round(new Date(getDateFromFormat(this.form.date1.value,'d/M/y')))+31536000000; var foo = formatDate(foo, 'd/M/y'); if (diff_date > 12) {var Result = ("Παρακαλούμε επικοινωνήστε μαζί μας.Ο εμβολιασμός έπρεπε να γίνει " + foo);} if (diff_date < 12) {var Result = ("Ο εμβολιασμός πρεπεi να γίνει " + foo);}
orotoi Δημοσ. 11 Δεκεμβρίου 2010 Δημοσ. 11 Δεκεμβρίου 2010 λογικά formatDate(new Date(foo),'d/M/y') και αυτό που λέει ο natural μια χαρά παίζει..
Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 Μπράβο orotoi τώρα δούλεψε σωστά. demo3 Θα χρησιμοποιήσω αυτόν τον τρόπο σας ευχαριστώ πολύ και τους δύο. Ναστε καλά.
Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 Ένα παράξενο που παρατήρησα είναι το εξής αν δώσεις 6/12/2008 υπολογίζει κανονικα αν δώσεις απο 7/12/2008 εως 5/1/2009 δε κάνει τίποτα υπάρχει νεκρό σημείο. Τι είναι παλι ετούτο!!!
orotoi Δημοσ. 11 Δεκεμβρίου 2010 Δημοσ. 11 Δεκεμβρίου 2010 +2 χρόνια έχεις βάλει? αν δώσεις απο 7/12/2008 εως 5/1/2009 δε κάνει τίποτα υπάρχει νεκρό σημείο. ε είχε κλείσει το ιατρείο για Χριστούγεννα ρε.. ιδέα δεν έχω.. too tired to check now..
Roland Δημοσ. 11 Δεκεμβρίου 2010 Μέλος Δημοσ. 11 Δεκεμβρίου 2010 sorry orotoi αλλα βλέπεις είμαι ντιπ άσχετος
Roland Δημοσ. 12 Δεκεμβρίου 2010 Μέλος Δημοσ. 12 Δεκεμβρίου 2010 δεν φταίει αυτό που σου έδωσα, αλλά η αρχική ημερομηνία που έχεις... > var date = new Date(); alert(date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear()); natural λές να μη κάνει σωστή δουλειά η function getDateFromFormat του date.js που χρησιμοποιώ? var foo_date1 = getDateFromFormat(this.form.date1.value, "d/M/y"); πως μπορώ να ξεπεράσω το πρόβλημα μπερδέματος ημερών και μηνών? ΥΓ.Με τον τρόπο του orotoi τα ξεπέρασα αυτά τα προβλήματα αλλά εκεί σε κάποιες συγκεκριμένες ημερομηνίες αρνήτε να συνεργαστεί.
orotoi Δημοσ. 12 Δεκεμβρίου 2010 Δημοσ. 12 Δεκεμβρίου 2010 roland.. βάλε ενα = εκεί που ελέγχεις αν είναι μεγαλύτερη απο 24μήνες.. > if (diff_date >= 24) Με αυτές τις ημερομηνίες το diff_date είναι 24 οπότε δεν έβγαζε αποτέλεσμα αφού δεν έλεγχες γι' αυτό.
Roland Δημοσ. 12 Δεκεμβρίου 2010 Μέλος Δημοσ. 12 Δεκεμβρίου 2010 Ναι μπράβο. Αυτό ήταν. Νασαι καλα. Ευχαριστώ για τη βοήθεια.
Roland Δημοσ. 12 Δεκεμβρίου 2010 Μέλος Δημοσ. 12 Δεκεμβρίου 2010 Κάτι τελευταίο . Παρατηρώ πως αν ο χρήστης πατήσει το enter επανέρχεται η default τιμή στο πεδίο χωρίς να γίνεται υπολογισμός. Λογικό γιατί όπως καταλαβαίνω υποβάλλεται η φόρμα. Αυτό συμβαίνει απο τοτε που προσθέσαμε τα tags <form></form>. Μήπως μπορούμε να τα αφαιρέσουμε και να παίρνει την ημερομηνία με jquery? απο var foo_date1 = getDateFromFormat(this.form.date1.value, "d/M/y"); σε var foo_date1 = getDateFromFormat($('#date1').val(), "d/M/y"); ή κάπως έτσι?
orotoi Δημοσ. 13 Δεκεμβρίου 2010 Δημοσ. 13 Δεκεμβρίου 2010 http://www.htmlcodetutorial.com/forms/index_famsupp_157.html
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.