我有日期選擇器使用angular-ui datepicker directive,但是當我選擇一個日期時,它顯示前一天。並通過控制檯嘗試,結果仍然存在。日期()在[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即第二天。 –