CRM 2011:使用javascript从字符串设置日期时间字段
CRM 2011: Set datetime field from string with javascript
我试图创建一个新记录,其中一个字段是DataTime字段。
我总是得到" the date-time format for Thu Sep 01 19:25:20 2011是无效的,或者值在支持的范围之外"错误。
我已经尝试了多种格式选项。与日期。解析、日期。parseExact,……这是我最后一次尝试:
//date input format = 2011-02-15 11:05:22
var year = register_date.substring(0, 4);
var month = register_date.substring(5, 7);
var day = register_date.substring(8, 10);
var hours = register_date.substring(11, 13);
var minutes = register_date.substring(14, 16);
var seconds = register_date.substring(17, 19);
var datetime = Date(Date.UTC(year, month, day, hours, minutes,seconds));
//var datetime = Date.parseExact(register_date, "yyyy-mm-dd HH:mm:ss");
regFields[4] = new CRMField("ave_subscriptiondate", datetime);
包括下面的代码,你可以这样做:
datetime.toCRMFormat();
这个代码是在这个有用的CRM 2011 JS库中找到的
// Formats the date to CRM format
Date.prototype.toCRMFormat = function()
{
var d = this;
var f = d.Format("yyyy-mm-ddThh:MM:ss+" + (-d.getTimezoneOffset()/60) + ":00");
return f;
}
// Formats the date into a certain format
Date.prototype.Format = function(format)
{
var d = this;
var f = "";
try {
f = f + format.replace( /dd|mm|yyyy|MM|hh|ss|ms|APM|'s|'/|'-|,|'./ig ,
function match()
{
switch(arguments[0])
{
case "dd":
var dd = d.getDate();
return (dd < 10)? "0" + dd : dd;
case "mm":
var mm = d.getMonth() + 1;
return (mm < 10)? "0" + mm : mm;
case "yyyy": return d.getFullYear();
case "hh":
var hh = d.getHours();
return (hh < 10)? "0" + hh : hh;
case "MM":
var MM = d.getMinutes();
return (MM < 10)? "0" + MM : MM;
case "ss":
var ss = d.getSeconds();
return (ss < 10)? "0" + ss : ss;
case "ms": return d.getMilliseconds();
case "APM":
var apm = d.getHours();
return (apm < 12)? "AM" : "PM";
default: return arguments[0];
}
});
}
catch(err)
{
}
return f;
}
或者如果您希望它们作为常规函数而不是Date的扩展,例如dateToCRMFormat(datetime)
// Formats the date to CRM format
function dateToCRMFormat (date)
{
return dateFormat(date, "yyyy-mm-ddThh:MM:ss+" + (-date.getTimezoneOffset()/60) + ":00");
}
// Formats the date into a certain format
function dateFormat (date, format)
{
var f = "";
try {
f = f + format.replace( /dd|mm|yyyy|MM|hh|ss|ms|APM|'s|'/|'-|,|'./ig ,
function match()
{
switch(arguments[0])
{
case "dd":
var dd = date.getDate();
return (dd < 10)? "0" + dd : dd;
case "mm":
var mm = date.getMonth() + 1;
return (mm < 10)? "0" + mm : mm;
case "yyyy": return date.getFullYear();
case "hh":
var hh = date.getHours();
return (hh < 10)? "0" + hh : hh;
case "MM":
var MM = date.getMinutes();
return (MM < 10)? "0" + MM : MM;
case "ss":
var ss = date.getSeconds();
return (ss < 10)? "0" + ss : ss;
case "ms": return date.getMilliseconds();
case "APM":
var apm = date.getHours();
return (apm < 12)? "AM" : "PM";
default: return arguments[0];
}
});
}
catch(err)
{
}
return f;
}
相关文章:
- 在输入类型日期中设置日期
- 在达到状态之前在Redux Reducer中设置日期格式
- Javascript设置日期不起作用,显示错误的时间
- 如何在我的情况下设置日期格式
- 时间戳日期&时间格式-应用程序脚本-设置日期和时间格式
- 引导日期选取器在显示时与在值上设置日期的格式不同
- 设置日期变量的格式
- Java 脚本 设置日期的最小值和最大值属性
- Javascript Date - 只设置日期,忽略时间
- 使用angular-moment.js设置日期格式
- Moment会在设置日期时自动更正无效日期
- Moment.js:根据浏览器语言设置日期格式
- 以给定的精度设置日期格式
- 使用即时Angularjs设置日期格式
- 使用DateAdd()在Javascript/Classic ASP中设置日期格式
- 从 UTC 字符串设置日期格式
- 如何设置日期滑块的选定范围的最小值
- 以角度格式设置日期格式
- 以角度设置日期格式
- 在 JavaScript 中设置日期时间顺序