Προς το περιεχόμενο

Υπολογισμός ημερομηνίας με jquery


Roland

Προτεινόμενες αναρτήσεις

Δημοσ.

>                        
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

Δημοσ.

αυτό φαίνεται να δουλεύει..

 

>
var foo = Math.round(new Date(getDateFromFormat(this.form.date1.value,'d/M/y')))+31536000000; alert(new Date(foo))">

 

orotoi

δες το demo5

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

Δημοσ.

στο αποτέλεσμα θα δώσεις το format που θες με την formatDate

Είναι ο αριθμός των milliseconds που έχει περάσει απο την 1/1/1970 (αυτή είναι η μορφή που κρατιέται η ημερομηνία.. γι' αυτό μπορείς να κάνεις και τις πράξεις date2 - date1 ή συγκρίσεις date2 < date1 κτλ)

 

Αν δώσεις σαν όρισμα στην new Date(ari8mo_milliseconds) θα σου επιστρέψει την ημ/νια στην long version.. με την formatDate της βιβλιοθήκης date.js που χρησιμοποιείς θα της δώσεις τη μορφή που θες.

Δημοσ.

natural_sgf με τη function που μου έδωσες όντος παρουσιάζει την ημερομηνία μόνο που μπερδευει τη σειρα.

πχ demo4

αν δώσεις 12/4/2009 ο υπολογισμός θα επιστρέψει 4/12/2010

 

δεν φταίει αυτό που σου έδωσα, αλλά η αρχική ημερομηνία που έχεις...

για να πειστείς, τρέξε χώρια τον κώδικα

κάπως έτσι:

 

>
var date = new Date();
alert(date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear());

Δημοσ.

στο αποτέλεσμα θα δώσεις το 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 τώρα δούλεψε σωστά.

demo3

 

Θα χρησιμοποιήσω αυτόν τον τρόπο

σας ευχαριστώ πολύ και τους δύο.

 

Ναστε καλά.

Δημοσ.

Ένα παράξενο που παρατήρησα είναι το εξής

αν δώσεις 6/12/2008 υπολογίζει κανονικα

αν δώσεις απο 7/12/2008 εως 5/1/2009 δε κάνει τίποτα υπάρχει νεκρό σημείο.

 

Τι είναι παλι ετούτο!!!

Δημοσ.

+2 χρόνια έχεις βάλει?

 

αν δώσεις απο 7/12/2008 εως 5/1/2009 δε κάνει τίποτα υπάρχει νεκρό σημείο.

 

ε είχε κλείσει το ιατρείο για Χριστούγεννα ρε.. :P

 

ιδέα δεν έχω.. too tired to check now..

Δημοσ.

δεν φταίει αυτό που σου έδωσα, αλλά η αρχική ημερομηνία που έχεις...

 

>
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 τα ξεπέρασα αυτά τα προβλήματα αλλά εκεί σε κάποιες συγκεκριμένες ημερομηνίες αρνήτε να συνεργαστεί. :unsure:

Δημοσ.

roland.. βάλε ενα = εκεί που ελέγχεις αν είναι μεγαλύτερη απο 24μήνες..

>
  if (diff_date >= 24)

 

Με αυτές τις ημερομηνίες το diff_date είναι 24 οπότε δεν έβγαζε αποτέλεσμα αφού δεν έλεγχες γι' αυτό.

Δημοσ.

Κάτι τελευταίο .

Παρατηρώ πως αν ο χρήστης πατήσει το 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");

 

ή κάπως έτσι?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...