我收到错误"号码预期"在这一行:
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>
答案 0 :(得分:1)
我也看到了这个问题但是以不同的方式。
var date = new Date('2017-07-02 00:00:00Z').toISOString();
这适用于Chrome但不适用于IE11。在日期和时间之间添加T可以解决IE11中的问题,它仍可在Chrome中使用。
var date = new Date('2017-07-02T00:00:00Z').toISOString();
答案 1 :(得分:0)
其中
$('#itemOpenDate').val()
是表示日期的字符串,例如&#34 8 /二千零十六分之十一&#34;
有你的问题。除了the date/time format之外,JavaScript的Date
构造函数不需要支持https://docs.python.org/2/library/getopt.html,这是(从ES2015规范开始)ISO-8601的一个子集(在ES5规范中,它们&# 39; d犯了一个错误,使其不是一个子集),例如2016-08-11
。每当你要求它解析其他任何东西时,你就会徘徊在未定义的行为中。您需要故意解析字符串(使用您自己的代码,或使用像MomentJS这样的库)。