- 之前偶尔会遇到给日期输入框赋值出现一些问题,现在记录下来,供各位参考。
- 页面
<div class="col-lg-6">
<div class="form-group">
<label><span style="color: red">*</span>时间</label>
<input class="form-control" id="dodate" name="dodate" type="date" />
</div>
</div>
- js代码
<script>
var dodate = 'Fri Feb 14 10:20:05 CST 2020';
var now = new Date(dodate);
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var hour = now.getHours();
var min = now.getMinutes();
var miao = now.getSeconds();
var date= now.getFullYear()+"-"+(month)+"-"+(day)+" "+hour+":"+min+":"+miao ;
$('#dodate').val(date);
</script>
- bug 貌似没完没了,刚看了一下,转换出来的时间有误差 ,原本dodate=‘Fri Feb 14 10:20:05 CST 2020’
但是 now =‘Sat Feb 15 2020 00:20:05 GMT+0800 (中国标准时间)’,date=‘2020-02-15 0:20:5’;这是为什 么呢,后来发现是时区的问题。
日期 dodate = ‘Fri Feb 14 10:20:05 CST 2020’ CST表示中国时间,但是CST比格林威治时间晚6个小时。北京时间比比格林威治时间早8个小时。这里dodate 的值为当地时间,即北京时间,所以需要在原来的基础上加上 6+8=14 小时。 因此时间调整为“Fri Feb 14 10:20:05 CST 2020 GMT+8”;
即: var now = new Date(dodate+“GMT+8”); 就可以了。