我有一个date selector
自动填写昨天我的表单上的日期输入,但是在该月的第一天它只是空白并且无法填充日期。我想我的代码缺少告诉它去上个月的位,如果它是第一个。我无法解决这个问题。所有帮助表示赞赏。
var today = new Date();
$(document).ready( function() {
var now = new Date();
var month = (now.getMonth() + 1);
var day = (now.getDate() - 1);
if(month < 10)
month = "0" + month;
if(day < 10)
day = "0" + day;
var today = now.getFullYear() + '-' + month + '-' + day;
$('#date').val(today);
});
答案 0 :(得分:2)
一个月没有“第二天”。试试这个:
var now = new Date(today.getFullYear(), today.getMonth(), today.getDate()-1);
通过执行此操作,您将创建一个日期为零的新日期对象。会不会打破它?不。 Date构造函数足够聪明,可以确定当前月份的第0天被解释为上个月的最后一天。
其他一切都应该有效,只需摆脱-1
行上的var day = ...
。
var today = new Date();
$(document).ready( function() {
var now = new Date(today.getFullYear(), today.getMonth(), today.getDate()-1);
var month = (now.getMonth() + 1);
var day = now.getDate();
if(month < 10)
month = "0" + month;
if(day < 10)
day = "0" + day;
var result = now.getFullYear() + '-' + month + '-' + day;
$('#date').val(result);
});
答案 1 :(得分:2)
你是对的,你不能只-1
日期并期望它返回上一个日期。您需要使用setDate()
致电-1
。这将更新日期对象。
var today = new Date();
today.setDate(today.getDate()-1);
// today is now yesterday