Kiedy wysłać datę przez JSON z Java do JavaScript, wysyła coś takiego:konwertować DateString Java aktualne javascript
var ds = "11:07:47 13/01/2011";
Javascript nie analizować ten ciąg do daty
var d = new Date(ds);
Any pomysły?
Kiedy wysłać datę przez JSON z Java do JavaScript, wysyła coś takiego:konwertować DateString Java aktualne javascript
var ds = "11:07:47 13/01/2011";
Javascript nie analizować ten ciąg do daty
var d = new Date(ds);
Any pomysły?
trzeba trochę JS że przeanalizować ciągu i powrót rok, miesiąc, dzień, minuta, godzina, sekunda w ciągi:
var hour = ds.split(":")[0],
minute = ds.split(":")[1],
last_part = ds.split(":")[2],
second = second_part.split(" ")[0],
last_part2 = second_part.split(" ")[1],
day = last_part2.split("/")[0],
month = last_part2.split("/")[1],
year = last_part2.split("/")[2];
a następnie instancji konstruktora Date:
var d = new Date (year, month, day, hour, minute, second);
Linia 3 powinna być 'sekunda = ds.split (": ") [2],', usuń czwartą linię, 5. linia powinna być 'last_part2 = ds.split (" ") [1],'. Możesz zmienić nazwę last_part2, ponieważ nie jest już druga. – Vache
dzięki za napisanie kodu, działało jak czar! –
Aby być po bezpiecznej stronie, powinieneś uzyskać czas w milisekundach w Javie i przesłać go przez JSON do JavaScript. Można tam użyć:
var d = new Date();
d.setTime(valueInMilliseconds);
Istnieje wiele sposobów na wywołanie konstruktora Date
.
Z odniesieniem na http://www.w3schools.com/js/js_obj_date.asp:
new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
function stringToDate(_date,_format,_delimiter)
{
var formatLowerCase=_format.toLowerCase();
var formatItems=formatLowerCase.split(_delimiter);
var dateItems=_date.split(_delimiter);
var monthIndex=formatItems.indexOf("mm");
var dayIndex=formatItems.indexOf("dd");
var yearIndex=formatItems.indexOf("yyyy");
var month=parseInt(dateItems[monthIndex]);
month-=1;
var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
return formatedDate;
}
stringToDate("17/9/2014","dd/MM/yyyy","/");
stringToDate("9/17/2014","mm/dd/yyyy","/")
stringToDate("9-17-2014","mm-dd-yyyy","-")
nie analizować? czy masz jakieś błędy? – SilentGhost
tak. zgłasza wyjątek, używając następującego wyrażenia: if (isNaN (d)) throw SyntaxError ("invalid date"); –
Tthis został poproszony w styczniu 2011 roku, dup link to kwiecień 2011, jak to może być duplikat? –