在日期时间字段中设置更新时间部分,但不更新日期部分
sethours updating time part but not the date part in date time field
我有一个datetime字段,只有日期作为格式。此外,我还在onload时添加了一个脚本,以便在访问记录时将12:00
添加到该字段。它按预期工作,并增加了12个小时的时间部分。但是它没有相应地更新日期。
例如,I've Date Become Manager字段,其值为'Thu Apr 30 23:00:00 UTC-1200 1992'
。在添加12小时后,它将时间部分更新为'Thu Apr 30 12:00:00 UTC-1200 1992'
,但不添加任何内容到其日期。下面是我要更新的代码片段。
function updateFields(field){
var dateField = Xrm.Page.getAttribute(field);
if(dateField.getValue()== null)
{
dateField.setValue(new Date());
}
dateField.setValue(dateField.getValue().setHours(12, 0, 0));
}
如果我做错了什么请告诉我
setHours
只有改变的时间,它不计算任何东西
var numberOfHours = 12; // how many hours you want to add. Can be *negative* too.
var millisecondsInAnHour = 60 * 60 * 1000; // this is constant
var offset = numberOfHours * millisecondsInAnHour;
var newFieldValue = dateField.getValue().getTime() + offset;
dateField.setValue(newFieldValue);
基本上,您获取值的时间并为其添加/减去毫秒数
所以为了清楚,您想要在当前日期值上添加12小时,(而不是将时间元素设置为12:00)?
setHours
只是设置时间,它不会在时间上增加12小时。如果你做多次,它将永远是12小时,而不是0 - 12 - 24。
如果你把setHours
和getHours
结合起来,你应该能够达到预期的行为。
var d1 = new Date();
console.log("Original Date: " + d1);
d1.setHours(12);
console.log("Set 12 Hours Once: " + d1);
d1.setHours(12);
console.log("Set 12 Hours Twice: " + d1);
var d2 = new Date();
console.log("Original Date 2: " + d2);
d2.setHours(d2.getHours() + 12);
console.log("Add 12 Hours Once: " + d2);
d2.setHours(d2.getHours() + 12);
console.log("Add 12 Hours Twice: " + d2);
输出:Original Date: Tue Sep 22 2015 09:45:39 GMT+0100 (GMT Daylight Time)
Set 12 Hours Once: Tue Sep 22 2015 12:45:39 GMT+0100 (GMT Daylight Time)
Set 12 Hours Twice: Tue Sep 22 2015 12:45:39 GMT+0100 (GMT Daylight Time)
Original Date 2: Tue Sep 22 2015 09:45:39 GMT+0100 (GMT Daylight Time)
Add 12 Hours Once: Tue Sep 22 2015 21:45:39 GMT+0100 (GMT Daylight Time)
Add 12 Hours Twice: Wed Sep 23 2015 09:45:39 GMT+0100 (GMT Daylight Time)
我刚刚更新了我的代码,它的工作。请看下面的代码片段:
function updateFields(field){
var dateField = Xrm.Page.getAttribute(field);
if(dateField.getValue()== null)
{
dateField.setValue(new Date());
}
dateField.setValue(dateField.getValue().setHours(dateField.getValue().getHours() + 12));}
相关文章:
- 正在更新起始日期角度日期范围选择器中的日期选择
- 在日期更改后更新Angular UI引导程序日期选择器选项
- 如何根据其他日期的输入更新日期
- 更新URL时使用Javascript函数显示日期
- 使用 JavaScript 更新日期
- 如何在页面上显示时间、日期IP和URL?更新日期:2015年2月25日
- 如何更新日期?当我运行应用程序时,它被卡住了
- jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
- AngularJS没有't在Django管理日期小部件上的jQuery事件后更新ng模型
- Bootstrap日期选择器中的更新不起作用
- CouchDB 日期格式自动更新
- Javascript 日期意外自动更新
- 我需要根据当前年份动态更新日期.目前在 html 中硬编码.需要更新一个单词
- Elm-从js更新日期输入字段不起作用
- Javascript/jQuery更新日期
- 在日期时间字段中设置更新时间部分,但不更新日期部分
- Angular js在更新日期时出现错误
- 读取appache清单值以获取最新更新日期
- 如何在Javascript中保持每分钟更新日期时间
- 通过输入字段中的天数更新日期选择器日期