- Posts: 20
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Calculate age in an Equation type question, using Date of Birth
- tfj
- Topic Author
- Offline
- Junior Member
Less
More
11 years 6 months ago #84792
by tfj
Calculate age in an Equation type question, using Date of Birth was created by tfj
Greetings:
Has anyone calculated a person's age in a Equation type question, using the Date of Birth from a previous question?
I have been doing this with a MySQL query, but I would like to move it to LimeSurvey.
I am using 1.92+ build 120808 on a Windows test PC.
Thanks!
tfj
Has anyone calculated a person's age in a Equation type question, using the Date of Birth from a previous question?
I have been doing this with a MySQL query, but I would like to move it to LimeSurvey.
I am using 1.92+ build 120808 on a Windows test PC.
Thanks!
tfj
The topic has been locked.
- DenisChenu
- Away
- LimeSurvey Community Team
Less
More
- Posts: 13912
- Thank you received: 2549
11 years 6 months ago #84806
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Calculate age in an Equation type question, using Date of Birth
Hello,
There a lot of script in web to do this, www.google.com/search?q=javascript+birth+age+calculation
Need little adaptation for LS date.
Denis
There a lot of script in web to do this, www.google.com/search?q=javascript+birth+age+calculation
Need little adaptation for LS date.
Denis
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
- tfj
- Topic Author
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 0
11 years 6 months ago #84820
by tfj
Replied by tfj on topic Calculate age in an Equation type question, using Date of Birth
Denis:
Thank you for responding.
Unfortunately for me, before asking my question on the Forum, I had already spent quite a bit of time on Google and a few hours attempting to use the "Implemented Functions" in Expression Manager (from the LimeSurvey documentation) to make this work in an Equation type question. I have found that if I struggle a bit before turning to the Forum, I usually learn things better.
I know I am taking the wrong approach in my efforts, so I am hoping someone who might have already done this could give me the "little adaptation for LS date" that you mentioned. If not, I'll keep at it until I figure it out (or until my deadline, at which point I'll stick with the MySQL query I had already written) and will share it on the Forum.
Thanks again!
tfj
Thank you for responding.
Unfortunately for me, before asking my question on the Forum, I had already spent quite a bit of time on Google and a few hours attempting to use the "Implemented Functions" in Expression Manager (from the LimeSurvey documentation) to make this work in an Equation type question. I have found that if I struggle a bit before turning to the Forum, I usually learn things better.
I know I am taking the wrong approach in my efforts, so I am hoping someone who might have already done this could give me the "little adaptation for LS date" that you mentioned. If not, I'll keep at it until I figure it out (or until my deadline, at which point I'll stick with the MySQL query I had already written) and will share it on the Forum.
Thanks again!
tfj
The topic has been locked.
- DenisChenu
- Away
- LimeSurvey Community Team
Less
More
- Posts: 13912
- Thank you received: 2549
11 years 6 months ago #84826
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Calculate age in an Equation type question, using Date of Birth
Hello,
I don't know if EM can work.
But, with javascript:
First make a date with a date question, if you format is dd-mm-yy then:
Something like that to put the age in QQ:
If date of birth is in the same page, the a
ca do the tric.
And put this function with workarounds help:
docs.limesurvey.org/tiki-index.php?page=..._etc._in_LimeSurvey_
Denis,
PS: there are surely some error in javascript code, i make it directly in the forum
PS2: calculation was taken here: pankajlalwani.wordpress.com/2010/08/02/a...ng-javascriptjquery/
I don't know if EM can work.
But, with javascript:
First make a date with a date question, if you format is dd-mm-yy then:
Something like that to put the age in QQ:
Code:
<script type="text/javascript"> function AgeFromBirth(birthdate,QQ) { aBirthDate=birthdate.split('-'); if(aBirthDate.length == 3){ birth = new Date(aBirthDate[2], aBirthDate[1] * 1 - 1, aBirthDate[0]); years = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000)); } $("#question"+QQ+" input.txt").val(years); } $(document).ready(function() { AgeFromBirth({INSERTANS:sssXgggXqqq},212); }); </script>
Code:
$("#questionQDATEOFBIRTHnumber input.date").blur(function(){AgeFromBirth($(this).val(),212);});
And put this function with workarounds help:
docs.limesurvey.org/tiki-index.php?page=..._etc._in_LimeSurvey_
Denis,
PS: there are surely some error in javascript code, i make it directly in the forum
PS2: calculation was taken here: pankajlalwani.wordpress.com/2010/08/02/a...ng-javascriptjquery/
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
- tfj
- Topic Author
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 0
11 years 6 months ago #84828
by tfj
Replied by tfj on topic Calculate age in an Equation type question, using Date of Birth
Denis:
Thank you for taking the time out to help!
I'll work on the example you provided . . . at least I know now that I was going down the wrong path with Expression Manager . . .
Thanks again!
tfj
Thank you for taking the time out to help!
I'll work on the example you provided . . . at least I know now that I was going down the wrong path with Expression Manager . . .
Thanks again!
tfj
The topic has been locked.
- Ben_V
- Offline
- Platinum Member
Less
More
- Posts: 1223
- Thank you received: 351
11 years 6 months ago - 11 years 6 months ago #84831
by Ben_V
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Replied by Ben_V on topic Calculate age in an Equation type question, using Date of Birth
In this
thread
it seems that some LS users did it...
Ben/
Ben/
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Last edit: 11 years 6 months ago by Ben_V.
The topic has been locked.
- tfj
- Topic Author
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 0
11 years 6 months ago #84832
by tfj
Replied by tfj on topic Calculate age in an Equation type question, using Date of Birth
benitov:
Thanks for pointing me to this thread. This will also be helpful!
tfj
Thanks for pointing me to this thread. This will also be helpful!
tfj
The topic has been locked.
- Ben_V
- Offline
- Platinum Member
Less
More
- Posts: 1223
- Thank you received: 351
11 years 6 months ago #84833
by Ben_V
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Replied by Ben_V on topic Calculate age in an Equation type question, using Date of Birth
I've tried the 2nd code given on the thread using a date question type (with format dd.mm.yyyy) + a short-text question.... (both questions on the same page)
Everything is working fine with LS 1.90 but turned wrong with 1.92...
I don't know why...
Everything is working fine with LS 1.90 but turned wrong with 1.92...
I don't know why...
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Attachments:
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10612
- Thank you received: 3691
11 years 6 months ago #84836
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Calculate age in an Equation type question, using Date of Birth
Ben, it worked fine for me in 1.92. Maybe your IDs were wrong?
Here it is with more generic selectors to avoid the export-import/ID-change problem. The age value is simply loaded into the first short-text found.
Here it is with more generic selectors to avoid the export-import/ID-change problem. The age value is simply loaded into the first short-text found.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:
The topic has been locked.
- tfj
- Topic Author
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 0
11 years 6 months ago #84837
by tfj
Replied by tfj on topic Calculate age in an Equation type question, using Date of Birth
Thanks, tpartner! I get a "NaN" error in the age text box.
On the off chance that it had something to do with the date format -- since I use "mm-dd-yyyy" -- I changed this setting to "dd-mm-yyyy" for the survey and I still got the "NaN" error. In the meantime, I changed it back to "mm-dd-yyyy."
This is another of those times where I figure I am missing something simple.
tfj
On the off chance that it had something to do with the date format -- since I use "mm-dd-yyyy" -- I changed this setting to "dd-mm-yyyy" for the survey and I still got the "NaN" error. In the meantime, I changed it back to "mm-dd-yyyy."
This is another of those times where I figure I am missing something simple.
tfj
The topic has been locked.
- Ben_V
- Offline
- Platinum Member
Less
More
- Posts: 1223
- Thank you received: 351
11 years 6 months ago #84838
by Ben_V
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Replied by Ben_V on topic Calculate age in an Equation type question, using Date of Birth
Thanks Tony...
Tested and working now for me, with all LS versions.
I'm sure that this code will be useful for other people.
Obviously using "more generic selectors" is a great idea !
Ben/
Tested and working now for me, with all LS versions.
I'm sure that this code will be useful for other people.
Obviously using "more generic selectors" is a great idea !
Ben/
Benoît
EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10612
- Thank you received: 3691
11 years 6 months ago #84839
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Calculate age in an Equation type question, using Date of Birth
tfj, I've modified for date format mm-dd-yyyy and tweaked the logic a bit in this code and attached survey.
Code:
<script> $(document).ready(function(){ $('.date input.popupdate').change(function() { // Format: mm-dd-yyyy var dob= $('.date input.popupdate').val(); var dobParts = dob.split("-"); dob = dobParts[0] + '/' + dobParts[1] + '/' + dobParts[2]; var dobDate= new Date(dob); var birth_year = dobDate.getYear(); var birth_month =dobDate.getMonth(); var birth_day =dobDate.getDate(); //alert ("you set the dob (mm-dd-yyyy) to: "+(dobDate.getMonth()+1)+"-"+dobDate.getDate()+"-"+dobDate.getFullYear()); var today_date = new Date(); var today_year = today_date.getYear(); var today_month = today_date.getMonth(); var today_day = today_date.getDate(); var age = (today_year) - birth_year; if ( today_month < birth_month) { age--; } else if ((birth_month == today_month) && (today_day < birth_day)) { age--; } $('.text-short:eq(0) input.text').val(age); }); }); </script>
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:
The topic has been locked.