我得到錯誤 「號預計」 在該行:「號應爲」 錯誤的IE 11 .toLocalString()/ toISOString()
new Date($('#itemOpenDate').val()).toISOString();
其中$( '#itemOpenDate') .val()是表示日期的字符串,例如「8/11/2016」,僅限於IE 11(在Chrome,Firefox和Safari中測試正常)。
我把它縮小到了#itemOpenDate是如何填充的。請參閱下面的代碼。我得到的錯誤有:
('#itemOpenDate').val(new Date("8/2/2016").toLocaleString());
但以下正常工作(即使在IE 11):
$('#itemOpenDate').val(new Date("8/2/2016").toDateString());
當然,我想要的格式.toLocaleString提供。有任何想法嗎?
代碼重現:
<!doctype html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" >
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container" role="main">
<form class="center-block form-horizontal">
<div class="form-group">
<label for="itemOpenDate" class="control-label">Open Date:</label>
<input type="text" class="form-control input-lg" id="itemOpenDate">
</div>
<div class="form-group">
<button id="updateItemButton" title="Update Item" type="button" class="btn btn-primary btn-lg btn-block">Update</button>
</div>
</form>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#itemOpenDate").datepicker();
getPunchlistItem();
$("#updateItemButton").click(function() {
updatePunchlistItem();
});
});
function getPunchlistItem(myPLItemID) {
$('#itemOpenDate').val(new Date("8/2/2016").toLocaleString()); // error
$('#itemOpenDate').val(new Date("8/2/2016").toDateString()); // no error
}
function updatePunchlistItem() {
var myOpenDate = new Date($('#itemOpenDate').val()).toISOString();
console.log(myOpenDate);
}
</script>
</body>
</html>
是因爲_'Invalid Date'_的? – Rayon
@Rayon:可能,這取決於IE11在面對一個不理解的字符串時決定做什麼。它可能會構造一個無效的日期(例如,相當於'new Date(NaN)'),在這種情況下'getHours'等全部返回'NaN'。 –