如何向用户添加一天's的输入
How can I add a day to user's input?
我有一个文本字段,以这种格式输入日期:yyyy-mm-dd,如何在用户输入的日期中添加一天?我有以下代码,但它不起作用。。。
users_date = document.getElementById('users_date').value;
var date = new Date(users_date);
var next_date = new Date();
next_date .setDate(date.getDate()+1);
document.getElementById('next_date').value = next_date;
第一个问题是第二个问题中的日期格式类似于"2013年8月5日星期一16:24:40 GMT-0500(Hora est.Pacífico,Sudamérica)"
第二个问题是,当用户输入一个月的第一天,如"2013-01-01"或"2013-08-01"时,它会显示"2013年9月1日星期日16:26:06 GMT-0500(Hora est.Pacífico,Sudamérica)"ALWAYS
例如,如果用户输入2013-01-01,我希望另一个文本字段为2013-01-02或2013-08-31,它显示2013-09-01,我该怎么做?
谢谢!!
它不重复,因为其他帖子没有格式化日期
在ES5之前,没有解析日期的标准。现在有一种格式是ISO8601的版本,但并不是所有使用中的浏览器都支持它,而且通常不用于用户输入。
通常会请求一种格式,或者使用返回特定格式的"日期选择器"。从那里,解析字符串以创建Date对象非常简单:
// s is date string in d/m/y format
function stringToDate(s) {
var b = s.split(/'D/);
return new Date(b[2], --b[1], b[0]);
}
对于ISO8601格式(y-m-d),只需更改零件的顺序:
// s is date string in y/m/d format
function isoStringToDate(s) {
var b = s.split(/'D/);
return new Date(b[0], --b[1], b[2]);
}
要向Date对象添加一天,只需添加一天:
var now = new Date();
var tomorrow = now.setDate(now.getDate() + 1);
这应该有效:
var date = new Date(document.getElementById('users_date').value);
var next_date = new Date(date.getTime() + 24*60*60*1000); // adding a day
document.getElementById('next_date').value = next_date.getFullYear() + "-" +
(next_date.getMonth()++) + "-" + next_date.getDate();
请注意,Date#getMonth()
是基于零的。因此,增量。
相关文章:
- 在JavaScript中重构上个月的第一天和最后一天的代码(node.js)
- 制作Easing Slider Start横幅取决于一周中的哪一天
- moment.js被一天的发行量抵消
- 在一天中的某个时间自动在我的网站上播放视频
- 如何将完整日历事件限制为仅一天
- 基于一天中的时间的不均匀计数计时器Jquery
- 如果今天是会计年度的最后一天,请从下拉菜单中删除当前年份
- 完整日历 - 如何在周视图中添加一天中的时间
- AngularJS引导日期选择器 - 每周的一天问题
- 根据一天中的时间更改滑块
- 如何使用jquery获取下一天的日期和下个月的日期
- 为什么new Date()会删除一天?-Javascript
- 在FullCalendar中单击一天获取事件
- javascript创建减去一天的新日期
- Javascript和图像更改,基于一天中的时间
- 从'获取本月的最后一天;2015-02-23'字符串(javascript)
- 当日期在不同月份时,如何获取本周的第一天和最后一天
- 为给定月份/年的每一天创建文本输入行
- 如何向用户添加一天's的输入
- 在PDF中使用Javascript将一天添加到用户输入日