Javascript日期修改
Javascript Date Modifiying
我已经编写了以下两个javascript函数:
function getDateFromDateAtHourOfDay(date, hour)
{
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var newDate = new Date(year, month, day, hour, 0, 0);
return (newDate);
}
和
function getDateDescriptionFromDate(date)
{
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
return ( (day < 10 ? ("0" + day) : (day)) + "." + (month < 10 ? ("0" + month) : (month)) + "." + year);
}
第一个应返回一个新的日期,该日期的年/月/日相同,但一天中的时间不同(例如,将2015-04-05 15:00切换为2015-04-05 16:00)。
第二个应该只返回格式为dd.MM.yyyy.的日期字符串
现在如果我打电话给
var selectedDate = new Date(); // normally function parameter
var startDate = getDateFromDateAtHourOfDay(selectedDate, hour);
document.getElementById("dateLabel").innerHTML = getDateDescriptionFromDate(startDate);
其中小时是一个函数参数,例如15(用警报测试),在我的"日期标签"中,它写着2015年1月5日。但如果我做
alert (selectedDate);
结果是:2015年4月5日星期日15:52:26 GMT+0200(CEST)=>现在。
selectedDate
在调用之间不会被修改(提醒并设置innerHTML)。
我认为这两个函数并没有达到我认为的效果,但也许你发现了错误。非常感谢。
编辑:
我试过这个代码:
selectedDate = new Date();
alert(selectedDate); // Sun Apr 05 2015 16:36:07 GMT+0200 (CEST)
var startDate = getDateFromDateAtHourOfDay(selectedDate, hour);
alert(hour); // 8
alert(startDate); // Thu Mar 05 2015 08:00:00 GMT+0100 (CET)
document.getElementById("datumLabel").innerHTML = getDateDescriptionFromDate(startDate); // 05.01.2015
我不知道你为什么对selectedDate
的返回感到惊讶。您只将其设置为new Date()
(现在)。代码中没有任何内容从创建的角度操纵此变量。
但是,您正在操作该值并将更改存储在startDate
和dateLabel.innerHTML
中。不过,您只会注意到格式,因为第二个函数去掉了"时间"的任何更改(由第一个函数完成)。
简而言之:您创建一个日期(现在),更改时间,然后将其格式化为只显示日期。
var selectedDate = new Date();
//selectedDate value = the date and time right now
var startDate = getDateFromDateAtHourOfDay(selectedDate, hour);
//startDate value = whatever selectedDate was + hours sent as parameter
document.getElementById("dateLabel").innerHTML = getDateDescriptionFromDate(startDate);
//Formatted value of startDate, to only show date
根据评论:
您忽略了javascript中的month
是零基础的。所以你必须做一些类似的事情:
var month = date.getMonth() + 1; //in the second function
function getDateFromDateAtHourOfDay(date, hour)
{
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var newDate = new Date(year, month, day, hour, 0, 0);
return (newDate);
}
function getDateDescriptionFromDate(date)
{
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return ( (day < 10 ? ("0" + day) : (day)) + "." + (month < 10 ? ("0" + month) : (month)) + "." + year);
}
var selectedDate = new Date(); // normally function parameter
var startDate = getDateFromDateAtHourOfDay(selectedDate, 15);
document.getElementById("dateLabel").innerHTML = 'Your current system date: ' + getDateDescriptionFromDate(startDate);
<div id="dateLabel"></div>
如果你尝试这样做,这应该会为你的警报和标签提供保存值,你为标签使用的值与你试图使用警报的值不同。
selectedDate = new Date();
alert(selectedDate); // Sun Apr 05 2015 16:36:07 GMT+0200 (CEST)
var startDate = getDateFromDateAtHourOfDay(selectedDate, hour);
alert(hour); // 8
alert(startDate); // Thu Mar 05 2015 08:00:00 GMT+0100 (CET)
var startDateDesc = getDateDescriptionFromDate(startDate);
alert(startDateDesc) // 05.01.2015
document.getElementById("datumLabel").innerHTML = startDateDesc; // 05.01.2015
相关文章:
- Javascript日期修改
- jQuery日期[时间]选择器-如何保存时间范围(+修改日期格式)
- 获取远程url's上次使用javascript修改的日期
- document.last修改日期
- 使用时刻修改日期.js
- 如何通过JavaScript查看上次修改的HTML日期
- 用于日期字符串修改的 Javascript 正则表达式
- 使用 Apache 模块和 Javascript/jQuery 显示网页的最后修改日期
- 更改其他日期类型字段时,如何修改日期类型字段
- Javascript Date.setHours()正在修改一个我没有引用的Date对象,使用了错误的日期
- 修改日期选择插件以在单击图标时弹出日历
- Google Fusion表上次修改日期
- 我如何修改这个JS代码以只返回一个日期时间对象
- 如何在javascript(node-js)中修改日期格式
- 操作系统.文件检查在OS.read之前的最后修改日期
- 最后修改日期从24小时到12小时
- 本地文件的最后修改日期.JavaScript
- 使用修改日期更新文本区域
- CRM 2011 JavaScript -修改日期从一个字段和设置到另一个
- 如何获得Javascript最后修改日期