Require Today's Day of Month with suffix written in JavaScript

Avatar

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile
LucreciousDFF
Level 2

30-09-2019

Hello All,

I have searched through the forums and have only found a post using FormCalc which adds the "st" "nd" "rd" "th" suffixes for the day of the month. I require a script which does this written in JavaScript as pulling in current numeric day of the month and adding the suffixes to the string.

I have a paragraph of text which displays as follows:

Dated this _______ day of ____________, _______

I have the code working for month and year was quite straightforward, however, I am having much difficulty with the day of the month adding in the suffixes correctly from 1 to 31.

Please help as soon as possible, thank you all for your time.

Lewis

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile
radzmar
MVP

30-09-2019

You're close. But the script can still be shorter.

var nDay = new Date().getDate(),

r = "";

if (nDay == 1 || nDay == 21 || nDay == 31) {

r += "st";

} else if (nDay == 2 || nDay == 22) {

r += "nd";

} else if (nDay == 3 || nDay == 23) {

r += "rd";

} else {

r += "th";

}

this.rawValue = nDay + r;

Answers (4)

Answers (4)

Avatar

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile
LucreciousDFF
Level 2

30-09-2019

Very nice!  Thank you!

All the best...

Lewis

Avatar

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile
LucreciousDFF
Level 2

30-09-2019

I am trying this, but, cannot reset local time, laptop is locked:

var today = new Date();

var dd = today.getDate();

if (dd == 1 || dd == 21 || dd == 31) {

this.rawValue = dd + "st";

}

else if (dd == 2 || dd == 22) {

this.rawValue = dd + "nd";

}

else if (dd == 3 || dd == 23) {

this.rawValue = dd + "rd";

}

else if (dd == 4 || dd == 5 || dd == 6 || dd == 7 || dd == 8 || dd == 9 || dd == 10 || dd == 11 || dd == 12 || dd == 13 || dd == 14 || dd == 15 || dd == 16 || dd == 17 || dd == 18 || dd == 19 || dd == 20 || dd == 24 || dd == 25 || dd == 26 || dd == 27 || dd == 28 || dd == 29 || dd == 30) {

this.rawValue = dd + "th";

}

Do you think this will work?

Avatar

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile

Avatar
Validate 1
Level 2
LucreciousDFF
Level 2

Likes

6 likes

Total Posts

32 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Boost 1
Affirm 1
Establish
Boost 3
View profile
LucreciousDFF
Level 2

30-09-2019

Very cool radzmar,

However, I was not clear on what was attempted, I am trying to get this to work:

var today = new Date();

var dd = today.getDate();

if (dd == 1) {

this.rawValue = dd + "st";

}

else if (dd == 2) {

this.rawValue = dd + "nd";

}

else if (dd == 3) {

this.rawValue = dd + "rd";

}

else if (dd >= 4) {

this.rawValue = dd + "th";

}

Trying to get the suffix to work in all scenarios. Tried this:

var today = new Date();

var dd = today.getDate();

if (dd == 1,21,31) {

this.rawValue = dd + "st";

}

else if (dd == 2,22) {

this.rawValue = dd + "nd";

}

else if (dd == 3,23) {

this.rawValue = dd + "rd";

}

else if (dd == 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27,28,29,30) {

this.rawValue = dd + "th";

}

Avatar

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile
radzmar
MVP

30-09-2019

That's not that complicated.

As an example, this script with populate a textfield what nth day of the month the current day is.

var aNthDay = ["", "First", "Second", "Third", "Fourth", "Fifth", "Sixth", "Seventh", "Eighth", "Ninth", "Tenth", "Eleventh", "Twelfth", "Thirteenth", "Fourteenth", "Fifthteenth", "Sixteenth", "Seventeenth", "Eighteenth", "Nineteenth", "Twentieth", "Twenty-first", "Twenty-second", "Twenty-third", "Twenty-fourth", "Twenty-fifth", "Twenty-sixth", "Twenty-seventh", "Twenty-eighth", "Twenty-ninth", "Thirtieth", "Thirty-first"],

    iDay = util.printd("d", new Date());

this.rawValue = aNthDay[iDay];