У меня есть выбор даты с помощью директивы datepicker с угловым ui, однако, когда я выбираю дату, она показывает мне предыдущий день. И попробовал это через консоль, результат остается.
Я не понимаю основную причину этой проблемы.
Конструктор Date распознает только несколько форматов, когда ему передается строка. Вам нужно использовать Date.parse, который распознает намного больше форматов и создает представление прошедшей в строке даты числа миллисекунд с момента Epoch, которое, в свою очередь, будет приниматься конструктором и создаст желаемый объект даты.
var date = new Date(Date.parse("2015-07-27T22:00:00.000Z"));
Возможно, вам кажется, что работа для вас
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Display month & year menus</title>
<link rel="stylesheet"
href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true
});
});
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
</html>
В документации указано, что вам нужно передать дату как
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
Поэтому вы должны передать это как:
new Date(2015,07,27,22,00,00,0000000000);
или вам нужно использовать Date.parse
для правильной обработки даты.
На стороне примечание: moment.js хорошо справляется со всеми этими проблемами.