Date calculation
Posted by Geir Mathisen - Jan 20 ’14 at 10:13
I need to set a default date field value based on another date filed in the form.
To_Date = From_Date + 10 days
Typically I would expect a javascript line something like this:
fd.field('To_Date').value(fd.field('From_Date').value()) + 10;
But this does not work.
Anyone know the correct syntax for doing date calculations in FD?
Thanks
-
Dmitry KozlovAdminMember for: 8 years 7 months 25 days
Hello Geir,
First, you have to convert string representation of your date to JavaScript object. Please, try the following code:
fd.field('Start_x0020_Date').change(function() { var startDateText = fd.field('Start_x0020_Date').value(); if (startDateText) { var startDate = new Date(Date.parse(startDateText)); var endDate = new Date(startDate); endDate.setDate(endDate.getDate() + 10); fd.field('End_x0020_Date').value([endDate.getMonth()+1, endDate.getDate(), endDate.getFullYear()].join('/')); } });
Please, note that internal names of my fields are 'Start_x0020_Date' and 'End_x0020_Date', you should replace them with your values.
-
Geir MathisenMemberMember for: 8 years 4 months 19 days
[#1]:
[#1]: Thanks for yet another fast response.
I have tried to insert your code, with my variables.Something goes wrong, which results in the calculated date not bbeing recognized as a date (or numbers).
Result = "NaN/NaN/NaN"It seems to go wrong in this line:
var startDate = new Date(Date.parse(startDateText));
alert(startDate); - returns "InvalidDate".
Any idea what is causing this?
Thanks again -
DmitryAdminMember for: 9 years 11 months 5 days
[#2]: What is your date format: mm/dd/yyyy? Do you use Date with Time fields or just Date?
-
Geir MathisenMemberMember for: 8 years 4 months 19 days
[#3]: Date fields is date only (no time).
Date format in Norway is: dd.mm.yyyy
(I replaced the pad char from "/" to ".")
Geir
-
DmitryAdminMember for: 9 years 11 months 5 days
[#4]: Could you place alert(startDateText) after this line fo code:
var startDateText = fd.field('Start_x0020_Date').value();
-
Geir MathisenMemberMember for: 8 years 4 months 19 days
[#5]: Script:
var startDateText = fd.field('Fra_x0020_Dato').value();
alert(startDateText);
Returns02.01.2014 - which is correct
-
Dmitry KozlovAdminMember for: 8 years 7 months 25 days
[#6]: Parse function doesn't work for your date format (dd.mm.yyyy), please, try the following code instead:
fd.field('Start_x0020_Date').change(function() { var startDateText = fd.field('Start_x0020_Date').value(); if (startDateText) { var startDateParts = startDateText.split('.'); var startDate = new Date(startDateParts[2], startDateParts[1]-1, startDateParts[0]); var endDate = new Date(startDate); endDate.setDate(endDate.getDate() + 10); fd.field('End_x0020_Date').value([endDate.getDate(), endDate.getMonth()+1, endDate.getFullYear()].join('.')); } });
-
Geir MathisenMemberMember for: 8 years 4 months 19 days
[#7]: That worked perfectly.
TAHNKS A LOT!