Когда я отправляю дату через JSON с Java на Javascript, он отправляет что-то вроде этого:
var ds = "11:07:47 13/01/2011";
Javascript не может проанализировать эту строку в дату
var d = new Date(ds);
Любые идеи?
Когда я отправляю дату через JSON с Java на Javascript, он отправляет что-то вроде этого:
var ds = "11:07:47 13/01/2011";
Javascript не может проанализировать эту строку в дату
var d = new Date(ds);
Любые идеи?
Вам нужен JS, который анализирует строку и возвращает год, месяц, день, минуту, час, секунду в строках:
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];
а затем создайте экземпляр конструктора Date:
var d = new Date ( year, month, day, hour, minute, second );
Чтобы быть в безопасности, вы должны получить время в миллисекундах на Java и отправить его через JSON на JavaScript. Там вы можете использовать
var d = new Date();
d.setTime(valueInMilliseconds);
Существует несколько способов вызова конструктора Date
.
Из ссылки 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","-")