Tuesday, September 8, 2009

Formatting CRM DateTime Field


As you might have noticed CRM DateTime field DataValue returns the following value: “Tue Sep 29 13:00:00 PDT 2009”
Sometimes you need to change the value to another format e.g. dd/mm/yyyy or mm-dd-yyyy hh:MM.
This is quite easy to do with C# since the format string is pretty extensive however the JavaScript Date object is pretty slim and so the only option is to write your own framework / prototype extension.

The following script extends the JavaScript Date Object and adds a toFormattedString function which accepts common format strings such as
dd – days, mm – months, yyyy – full year, hh – hours , MM – minutes , ss – seconds , ms – milliseconds , APM – AM/PM
You can extend the prototype function further if you require additional formatting.

Here is the code and usage example:

Date.prototype.toFormattedString = function(format)
{
var d = this;
var f = "";
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];
}
});

return f;
}

function OnCrmPageLoad()
{
var d = new Date(crmForm.all..DataValue);
alert(d.toFormattedString("mm-dd-yyyy hh:MM:ss ms"));
alert(d.toFormattedString("dd/mm/yyyy hh:MM APM"));
}

OnCrmPageLoad();

4 comments:

Söderåsen said...

Hello, I am new in CRM world. I don't know if I can ask you this but I try. Is it possible to select many rows of an entity and then click a button like "Add this projectscontact" to another entity? For example I have "project" and I want to add more than one projeccontact at the same time...

Adi Katz said...

It's possible.

Simple solution:
Create a N:1 relationship between project contact and project and relate the contacts from the project entity form.

Advanced solution:
If you need this to be triggered from the project contact grid then you need to develop the solution by adding an isv.config button and a custom page that handles the relationship.

I also suggest posting your questions here Dynamics forums. This is a common requirement in many projects and I’m sure some will share their code bits with you.

jagan said...

Mastering the formatting of CRM DateTime fields is essential for accurate data management. This article provides practical tips and techniques to ensure your DateTime fields are formatted correctly, enhancing your CRM’s functionality and improving reporting accuracy.
Digital Marketing Training In Ameerpet








Gouse said...

Great article! Simplifies the complexities of formatting DateTime fields in CRM systems. The step-by-step guidance is super helpful for ensuring data consistency and improving overall CRM functionality. Thanks for sharing!"

Digital Marketing Course In Hyderabad
Digital Marketing Course In Ameerpet