很抱歉,如果这是一个重复的问题,我在网上找不到任何解决方案,所以我发布了这个
我的问题:
我正在从数据库中显示日期和时间,它在Chrome
浏览器中正确显示,但Internet Explorer
中未显示时间(它显示为09/19/2016 NaN:NaN:NaN AM)
我尝试了什么
我的代码段:
function ParseTime(date) {
var t = date.toString();
t = new Date(t.replace('T', ' '));
var Tdata = new Date(t);
var format = "AM";
var hour = Tdata.getHours();
var min = Tdata.getMinutes();
var sec = Tdata.getSeconds();
if (hour > 11) { format = "PM"; }
if (hour > 12) { hour = hour - 12; }
if (hour == 0) { hour = 12; }
if (min < 10) { min = "0" + min; }
if (hour < 10) { hour = "0" + hour; }
if (sec < 10) { sec = "0" + sec; }
var Time = " " + hour + ":" + min + ":" + sec + " " + format;
return Time;
}
请帮我解决此问题
答案 0 :(得分:0)
你是如何调用你的功能的?即使您使用
调用它ParseTime(new Date('2016-09-22T08:43:23'))
toString会将其转换为其他内容。
所以检查
之后包含的内容var t = date.toString();
如果包含,例如
Thu Sep 22 2016 08:43:23 GMT+0300 (FLE Daylight Time)
你会得到
hu Sep 22 2016 08:43:23 GMT+0300 (FLE Daylight Time)
每个浏览器的日期解析实现都不同,因此Chrome能够幸免于这个格式错误的字符串,IE不会
答案 1 :(得分:0)
在这种情况下,如果您想将时间转换为格式,请使用moment.js。
它很适合在JS中操作日期。它们有许多可用的功能。您还可以格式化为任何格式,并以任何格式创建日期对象。
moment().format('YYYY-DD-MM hh:mm:ss');
答案 2 :(得分:0)
如果浏览器是IE,请不要删除“T”字符串只是确保你的html中还有jquery
<form class="form-horizontal">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail3" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox"> Remember me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Sign in</button>
</div>
</div>
</form>