日期()在[angular-ui datepicker指令]返回昨天的日期
问题描述:
我有日期选择器使用angular-ui datepicker directive,但是当我选择一个日期时,它显示前一天。并通过控制台尝试,结果仍然存在。日期()在[angular-ui datepicker指令]返回昨天的日期
我不明白这个问题背后的主要原因。
答
当一个字符串传递给它的构造函数的日期只能识别少数几种格式。您需要使用Date.parse,它可以识别更多的格式,并将传入的日期字符串的表示形式表示为自Epoch以来的毫秒数,反过来,该数据将被构造函数接受并生成所需的日期对象。
var date = new Date(Date.parse("2015-07-27T22:00:00.000Z"));
答
的documentation指定您需要通过日期
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
所以你应该把它作为:
new Date(2015,07,27,22,00,00,0000000000);
,否则你需要使用Date.parse
解析日期正确。
附注:moment.js很好处理所有这些问题。
答
可能似乎对你
<!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>
您选择的日期正确的工作,但角转换日期为根据时区, 选择日期时间22:00:00.000Z和你有GMT + 0200即22 + 2即第二天。 –