js 给 input type="date" 赋值

本文介绍了解决网页日期输入框赋值时遇到的时区问题,通过调整时区确保日期正确显示,适用于前端开发人员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 之前偶尔会遇到给日期输入框赋值出现一些问题,现在记录下来,供各位参考。
  2. 页面
<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>	
  1. js代码
<script>
	//举个列子,比如 dodte ='Fri Feb 14 10:20:05 CST 2020';将dodate 转化成我们想要的格式
	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>
  1. 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”); 就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值