Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

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

LucreciousDFF
Level 3
Level 3

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

1 Accepted Solution
radzmar
Correct answer by
Level 10
Level 10

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;

View solution in original post

5 Replies
radzmar
Level 10
Level 10

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];

LucreciousDFF
Level 3
Level 3

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";

}

LucreciousDFF
Level 3
Level 3

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?

radzmar
Correct answer by
Level 10
Level 10

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;

View solution in original post

LucreciousDFF
Level 3
Level 3

Very nice!  Thank you!

All the best...

Lewis