Μετατροπη string σε date

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
Άβαταρ μέλους
diti
Δημοσιεύσεις: 54
Εγγραφή: 09 Ιαν 2004 17:41
Τοποθεσία: ΘΕΣΣΑΛΟΝΙΚΗ
Επικοινωνία:

Μετατροπη string σε date

Δημοσίευση από diti » 08 Φεβ 2010 13:36

Καλησπέρα σε όλους.

Σε μία φόρμα έχω 2 text που δίνω ημερομηνίες. Στην αρχή η from_date έχει την τρέχουσα ημερομηνία και η to_date έχει την σημερινή ημερομηνία + 7 ημέρες. Αυτό το κάνω ως εξής στη javascript:
var from_date=new Date();
var to_date=new Date();
document.getElementById("start_time_date").value=from_date.getDate()+'/'+(Number(from_date.getMonth())+1)+'/'+from_date.getFullYear();
to_date.setDate(to_date.getDate()+7);
document.getElementById("end_time_date").value=to_date.getDate()+'/'+(Number(to_date.getMonth())+1)+'/'+to_date.getFullYear();

start_time_date, end_time_date: είναι τα ονόματα των text.
Εδώ εμφανίζω τις ημερομηνίες χωρίς να έχω πρόβλημα. π.χ 8/2/2010, 15/2/2010, όπου ο χρήστης μπορεί να τις αλλάξει.

Το πρόβλημα είναι όταν θέλω να πάρω την start_time_date που είναι text και να την μετατρέψω σε ημερομηνία ώστε να κάνω πράξεις. π.χ. θέλω να βρίσκω στις ημερομηνίες 1 ή 2 ημέρες:
8/2/2010, 10/2/2010, 12/2/2010, 14/2/2010.

χρησιμοποιώ τα εξής:
1)
var from_date =new Date();
from_date = document.getElementById("start_time_date").value;
from_date.setDate(from_date.getDate()+1);

αλλά δεν δουλεύει η 3η εντολή, ίσως γιατί βάζω το string start_time_date στην ημερομηνία from_date

2)
var from_date =new Date(document.getElementById("start_time_date").value);
from_date.setDate(from_date.getDate()+1);

εδώ δουλεύει η 2η εντολή αλλά η ημερομηνία που παίρνω στο from_date είναι 2/8/2010 αντί για 8/2/2010. έχει δηλ. άλλο format. Εδώ χρειάζομαι το format dd/mm/yyyy

Δεν βρήκα συνάρτηση στην javascipt που να μετετρέπει string σε date και με συγκεκριμένο format. Μήπως μπορεί κάποιος να βοηθήσει;
Σας ευχαριστώ πολύ.

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

Μετατροπη string σε date

Δημοσίευση από fafos » 08 Φεβ 2010 15:24


Άβαταρ μέλους
diti
Δημοσιεύσεις: 54
Εγγραφή: 09 Ιαν 2004 17:41
Τοποθεσία: ΘΕΣΣΑΛΟΝΙΚΗ
Επικοινωνία:

Μετατροπη string σε date

Δημοσίευση από diti » 08 Φεβ 2010 16:02

Καταρχήν σ' ευχαριστώ για τη γρήγορη απάντηση.
Δεν βοηθάει όμως η συνάρτηση αυτή στο πρόβλημα που έχω.
Σε ένα text box ο χρήστης πληκτρολογεί ημερομηνία στη μορφή dd/mm/yyyy. π.χ. 8/2/2010. Θέλω τη τιμή αυτή του text box να την πάρω και να κάνω πράξη. Παράδειγμα να προσθέσω 10 μέρες και να μου εμφανίσει την καινούργια ημερομηνία 10 μέρες μετά.
χρησιμοποιώ την εξής εντολή:
var from_date =new Date(document.getElementById("start_time_date").value);

ενώ ο χρήστης έδωσε στο start_time_date = 8/2/2010 με την εντολή αυτή το αποτέλεσμα στην from_date είναι 2 Aug 2010. Βλέπει δηλαδή τη μέρα σαν μήνα και τον μήνα σαν ημέρα.

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

Μετατροπη string σε date

Δημοσίευση από fafos » 08 Φεβ 2010 16:58

me to split tha spaseis thn hmeromhnia kai tha thn "ksanasynarmologhseis" sthn morfh pou thes:

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

var normaldate=from_date.split("/"); 
d.setFullYear(normaldate[2],normaldate[1] - 1,normaldate[0]);
edo phra thn 8/2/2010 kai thn ekana array xorizontas to var sto slash (/)... proekypsan tria nea vars:

normaldate[0] = 8 (hmera)
normaldate[1] = 2 (mhnas)
normaldate[2] = 2010 (etos)

antestrepsa ta vars kai moy edose thn morfh ths hmeromhnias:2010,2,8..

logo tou oti tha xrhsimopoihso thn setFullYear gia na metatrepso thn hmeromhnia se miliseconds otan kano thn praksh prepei na aferaiso 1 apo ton mhna giati oi mhnes ksekinane apo to 0:

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

d.setFullYear(normaldate[2],normaldate[1] - 1,normaldate[0]);
kano thn praksh:

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

var newdate = d.setDate(d.getDate()+1);
kai pairno thn hmeromhnia se miliseconds.. meta thn tropopoieis opos thes.. p.x. me auto:

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

var printnewdate = new Date(newdate);
to printnewdate tha dosei hmeromhnia morfhs: Tue Feb 9 16:39:58 UTC+0200 2010


o kodikas:

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

<script>
var d = new Date&#40;&#41;;
var from_date =new Date&#40;document.getElementById&#40;"start_time_date"&#41;.value&#41;; 
var normaldate=from_date.split&#40;"/"&#41;; 
d.setFullYear&#40;normaldate&#91;2&#93;,normaldate&#91;1&#93; - 1,normaldate&#91;0&#93;&#41;;
var newdate = d.setDate&#40;d.getDate&#40;&#41;+1&#41;;
var printnewdate = new Date&#40;newdate&#41;;
document.write&#40;printnewdate&#41;;

</script>

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Μετατροπη string σε date

Δημοσίευση από Basilakis » 08 Φεβ 2010 18:36

Γιατί δίνεις μόνο την συνάρτηση μωρέ fafos αφού μετά θα το γράψεις όλο; :D

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

Μετατροπη string σε date

Δημοσίευση από fafos » 08 Φεβ 2010 18:57

Basilakis έγραψε:Γιατί δίνεις μόνο την συνάρτηση μωρέ fafos αφού μετά θα το γράψεις όλο; :D
tha to egrafa alla den exo katalavei ti kanei meta apo auto.. :lol:

Άβαταρ μέλους
diti
Δημοσιεύσεις: 54
Εγγραφή: 09 Ιαν 2004 17:41
Τοποθεσία: ΘΕΣΣΑΛΟΝΙΚΗ
Επικοινωνία:

Μετατροπη string σε date

Δημοσίευση από diti » 09 Φεβ 2010 00:06

Το δοκίμασα το κώδικα που έδωσες μόνο που αντί για την εντολή
var from_date =new Date(document.getElementById("start_time_date").value);
έδωσα var from_date =(document.getElementById("start_time_date").value);
για να είναι το from_date string και να έχει τα / για να γίνει split και φυσικά όλα δούλευαν.
Η αλήθεια είναι ότι σκέφτηκα να χρησιμοποιήσω την split αλλά έψαχνα μήπως υπάρχει κάποια συνάρτηση που να μετατρέπει ένα string σε date έτσι ώστε να δουλεύουν σωστά οι συναρτήσεις ημερομηνίας.

Το πρόγραμμα που κάνω είναι να δίνει ο χρήστης σε μια φόρμα την από ημερομηνία και την έως ημερομηνία και σε αυτό το διάστημα να βρίσκω τις ημερομηνίες π.χ. ανα ημέρα.
π.χ. από ημερομηνία=8/2/2010 έως ημερομηνία=11/2/2010 και το αποτέλεσμα να είναι:
8/2/2010, 9/2/2010, 10/2/2010, 11/2/2010.

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

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

Μετατροπη string σε date

Δημοσίευση από fafos » 09 Φεβ 2010 00:55

diti έγραψε:και οι γνώσεις σου δεν έχουν όρια !!!!!!!!!!!!!!!!!!!!!!
psss.. pou na me deis sto psarema... :kaloe:

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Μετατροπη string σε date

Δημοσίευση από Basilakis » 09 Φεβ 2010 01:00

Egw ematha pws o grjava se vgazei nockout stis psaries!

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

Μετατροπη string σε date

Δημοσίευση από fafos » 09 Φεβ 2010 01:46

Basilakis έγραψε:Egw ematha pws o grjava se vgazei nockout stis psaries!
nai.. otan ton afhnei h gynaika tou, meta apo 25 anafores pou vgainei kathe proi.. :lol:

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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