2011-10-16 15 views
9

Jak przekonwertować ciąg daty na obiekt Date?Jak przekonwertować ciąg na obiekt Date?

2011-09-19T19:49:21+04:00 
+2

Skąd pochodzi ten ciąg daty? Jeśli z serwera, jedynym bezpiecznym sposobem jest zrobienie tego ręcznie, ponieważ każdy kraj może mieć inny format daty i godziny i nie możesz tego wiedzieć na pewno. –

+2

Sprawdź ten wpis: http://stackoverflow.com/questions/476105/how-can-i-concon-string-to-datetime-with-format-specification-in-javascript –

+1

jak dokładnie jest to związane z 'jquery' , ponieważ dodałeś ten tag? –

Odpowiedz

10

Użyj analizatora dat jquery ui.

http://docs.jquery.com/UI/Datepicker/parseDate

To najlepsza funkcja do analizowania dat z łańcuchów, które miałem przyjemność pracować w JS. A po dodaniu jquery tagów jest to prawdopodobnie najlepsze rozwiązanie dla Ciebie.

+2

Czy czasy wsparcia Datepicker? tj. część 19: 49: 21 + 04: 00 ?? – Adam

+1

ten link może również być przydatny https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse – zabusa

20

Najlepszym sposobem na to jest za pomocą new Date()

Przykład:

var stringDate = '2011-09-19T19:49:21+04:00' 
var date = new Date(stringDate) // Mon Sep 19 2011 08:49:21 GMT-0700 (PDT) 
3

Właśnie napisał funkcji javascript, która działa na każdym polu data wejścia. Używam selektora daty jquery i działa to dobrze.

<!DOCTYPE html> 
<html> 
<body> 

<p>Click the button to extract characters from the string.</p> 

<button onclick="myFunction()">Try it</button> 

<p id="enddate"></p> 
<p id="startDate"></p> 

<script> 
    function myFunction() { 
//var str = document.getElementById("start_date).value; 
// var end = document.getElementById("end_date).value; 

    var str = "2014-11-26"; 
    var end = "2014-11-22"; 


//first four strings (year) - starting from zero (first parameter), ends at 4th character (second parameter). It excludes the last character. 
var year = str.substring(0,4); 
var month = str.substring(5,7);//first two characters since 5th. It excludes the 7th character. 
var date = str.substring(8,10);//first two character since 8th char. It excludes the 10th character. 


var endYear = end.substring(0,4); 
var endMonth = end.substring(5,7); 
var endDate = end.substring(8,10); 

var startDate = new Date(year, month-1, date); 
var endDate = new Date(endYear, endMonth-1, endDate); 

document.getElementById("enddate").HTML=endDate; 
document.getElementById("startDate").HTML=startDate; 


if (startDate > endDate) { 
    alert('start date should be less than end date'); 
    return false; 

} else { 

alert('date is ok..'); 
return true; 
} 



} 
</script> 

</body> 
</html> 

nadzieję, że to pomaga. Szczęśliwe kodowanie :)

Powiązane problemy