我的数据库中有多个已注册的日历,每个日历都有其特征。
我有一个包含文件的屏幕,并通过下拉列表选择此文件的频率将遵守的时间表。
例如:每日,每周,每月等。
这个想法是当用户点击特定文本框时,会出现一条消息,指示文件的下一个可用日期。
实施例。今天是28日。
气球:"下一个日期是2015年4月29日那天"如果频率是每天。
你能帮我用JavaScript构建这个函数吗?
我尝试使用下面的代码,但我的主要问题是如何在日历函数中返回下一个日期
代码:
function ShowTip(obj, msg, useBottom, maxWidth){
try
{
window.status = msg;
var msgTip = document.getElementById('msgTip');
if(msgTip)
{
msgTipText.innerHTML = msg;
msgTip.style.zIndex = 9999;
msgTip.style.left = obj.getClientRects()[0].left + document.body.scrollLeft - 2;
msgTip.style.display = 'block';
if (maxWidth != null)
if (msgTip.offsetWidth > maxWidth) msgTip.style.width = maxWidth;
if (useBottom)
msgTip.style.top = obj.getClientRects()[0].bottom + document.body.scrollTop;
else
msgTip.style.top = obj.getClientRects()[0].top + document.body.scrollTop - msgTip.offsetHeight - 4;
}
}
catch(e) {}
}
答案 0 :(得分:1)
您可以使用这样的函数传递日,周,月等间隔,并使用switch语句相应地更改日期。最后,该函数可以返回格式化的日期字符串以显示给用户。
function addDate(interval) {
var todaysDate = new Date();
switch(interval) {
case "daily":
todaysDate.setDate(todaysDate.getDate() + 1);
break;
case "weekly":
todaysDate.setDate(todaysDate.getDate() + 7);
break;
case "monthly":
todaysDate.setMonth(todaysDate.getMonth() + 1);
break;
default:
break;
}
return todaysDate.toLocaleDateString();
}
答案 1 :(得分:0)
使用提供加/减功能的moment.js,然后使用 toDate()
将moment.js返回的时间戳转换为JavaScript Date对象<script src="//momentjs.com/downloads/moment.js"></script>
<script type="text/javascript">
var now = moment();
var tomorrow = now.add(1, 'day').toDate();
var nextWeek = now.add(1, 'week').toDate();
var nextMonth = now.add(1, 'month').toDate();
</script>
Moment.js还提供格式化功能,例如
<script type="text/javascript">
var now = moment();
var tomorrow = now.add(1, 'day');
console.log(tomorrow.format('MM/DD/YYYY'));
</script>