• 0

Need Help: JS array to change a word every 90 days


Question

Hello

 

I'm working on a JavaScript array with several words in it and I want it to cycle to the next word every 90 days (or every 3 months if easier).

 

Say I have an array like the following

 

var word = ['test1', 'test2', 'test3', 'test4'];

 

I'd like to do it by date string so I already have a set of variables setup to show date in the following format:

YYYYMMDD

20171213

 

Any help would be appreciated, I am a bit new to JavaScript and Java in general.

 

edit: current code

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript Word Testing</title>
<script>
var word = ['test1', 'test2', 'test3', 'test4'];
var d = new Date();
var day = dom(d);
var m1 = d.getMonth() + 1;
var month = ('0' + m1).slice(-2);
var year = d.getFullYear();

function dom(d) {
	return (d.getDate() < 10 ? '0' : '') + d.getDate();
}

window.onload = function tf() {
	document.getElementById('dateid').innerHTML = year + month + day;
    document.getElementById('wordid').innerHTML = word[0];
};
</script>
</head>

<body>
<p>Current Date: <span id='dateid'></span></p>
<p>word: <span id='wordid'></span></p>
</body>
</html>

 

4 answers to this question

Recommended Posts

  • 0

Let's start by making a date:

let date = new Date();

Then let's get our word:

document.getElementById('wordid').innerHTML = word[Math.round((date.getMonth() + 1) / 3) - 1)]; //Pick a different word every 3 months

As for the readable date string, consider using toLocaleDateString():

document.getElementById('dateid').innerHTML = date.toLocaleDateString();

As for the formatting, see the following options documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Using_options

 

 

As for every 30 days instead of every 3 months, see the many solutions/workarounds on stackoverflow: https://stackoverflow.com/questions/8619879/javascript-calculate-the-day-of-the-year-1-366

Or be lazy and use a library like moment.js for everything date related, day of year is as simple as:

let day = moment().dayOfYear();

Then you simply do:

document.getElementById('wordid').innerHTML = word[Math.round(day / 30) - 1)]; //Pick a different word every 30 days

 

  • 0
On 12/14/2017 at 4:19 AM, Seahorsepip said:

 

As for every 30 days instead of every 3 months, see the many solutions/workarounds on stackoverflow: https://stackoverflow.com/questions/8619879/javascript-calculate-the-day-of-the-year-1-366

Or be lazy and use a library like moment.js for everything date related, day of year is as simple as:


let day = moment().dayOfYear();

Then you simply do:


document.getElementById('wordid').innerHTML = word[Math.round(day / 30) - 1)]; //Pick a different word every 30 days

 

Using a well tested Library is never lazy. It is good engineering. It reduces the chances of bugs and saves time to focus on the main purpose of your app. And date calculations can be crazy akin to rolling your own encryption!

 

For reference, NodaTime is great for .NET and it has been ported to Java as JodaTime:

 

https://nodatime.org/

 

http://www.joda.org/joda-time/

 

For JavaScript, I agree with moment.js

 

https://momentjs.com/

 

 

  • 0
2 hours ago, DevTech said:

Using a well tested Library is never lazy. It is good engineering. It reduces the chances of bugs and saves time to focus on the main purpose of your app. And date calculations can be crazy akin to rolling your own encryption!

 

For reference, NodaTime is great for .NET and it has been ported to Java as JodaTime:

 

https://nodatime.org/

 

http://www.joda.org/joda-time/

 

For JavaScript, I agree with moment.js

 

https://momentjs.com/

 

 

With lazy I was referring to developers using external JS libraries for almost every single line of code resulting in 30 dependencies for 50 lines of code.

Libraries are great but the moment you use libraries like https://www.npmjs.com/package/sum-of-two-numbers you should start getting worried :shiftyninja:

  • 0
9 hours ago, Seahorsepip said:

With lazy I was referring to developers using external JS libraries for almost every single line of code resulting in 30 dependencies for 50 lines of code.

Libraries are great but the moment you use libraries like https://www.npmjs.com/package/sum-of-two-numbers you should start getting worried :shiftyninja:

Yeah but... you made that particular point in the context of Date Calculations which few people realize are a tricky minefield, so it might have been more informative to say something like "if you are one of those minimalists that hate to use libraries, here is an area you should make an exception"

 

But I could have worded my comment better since it is hard to get posts in this sub-forum and quibbling over details when you were providing some great help was mainly stupid on my part.

 

I love that sum function for sheer understated Monty Pythonish afrontery. In keeping with that venerable Bristish tradition it would be nice if we could dream up a pull request on the project! It hasn't been updated in 3 years...

 

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Hello, Also known for https://www.theguardian.com/technology/2009/jan/29/adware-internet.   Regards, Aryeh Goretsky    
    • Hello, I have used a few TEAM Group SSDs, USB flash drives, and Micro SDXC cards in the past. They all seemed to work fine. Regards, Aryeh Goretsky
    • "just $100 per TB"? Just? Are we trying to make this seem like the new normal? Kinda weird to make it sound like that is not a ridiculously expensive asking price.
    • The reviews you refer to mean nothing. Where there is no journalism there is no reason to call the gaming media's opinion pieces "reviews". For GP games there is indeed a metric for success - increasing subscriptions. Which turns in revenue. The only circumstance in which subs do not rise when great is being released is a Game Pass system where the company is close to fully saturated with customers in a subscription. However, in that case as the theory goes you spend aplenty in all kind of games - from shady live service cash cows and customer offending agitprop crap in purple colours to robust and entertaining single player games. And keep a solid level of profitability. Ignoring the simply innocuous but mid games MGS has released primarily of the second kind.
    • Report: Microsoft to use AWS to help GitHub deal with a major surge in demand by Pradeep Viswanathan Thanks to the surge of coding AI agents, GitHub's usage has skyrocketed over the past 12 months. To meet this demand, GitHub started with a plan in October 2025 to increase capacity by 10x. However, by early this year, the company realized that it needed 30x scale. This rapid growth has caused severe strain on the platform's reliability, resulting in several small outages over the past few months. In April, GitHub published a long blog post explaining the steps it is taking to resolve these reliability issues. In the post, the company also confirmed that it is working toward a multi-cloud architecture for better resilience. Today, Business Insider reported that GitHub is turning to Amazon Web Services to help deal with a major surge in AI-driven coding activity. It is important to note that GitHub is still in the process of moving completely to the Azure cloud. The current plan is to move the platform fully to Azure by 2027 so that it can scale better as per developer demand. Therefore, the current decision to utilize AWS might be part of a short-term plan to meet immediate demand. A Microsoft spokesperson confirmed that GitHub is using multiple cloud providers with the following statement: For Microsoft, the decision highlights the operational pressure behind the AI boom. GitHub has to stay reliable for developers at a time when rivals such as Codex, Cursor, Claude Code, and other AI coding tools are gaining attention. And the decision to use AWS for computing capacity seems practical given the circumstances.
  • Recent Achievements

    • Collaborator
      vjlex earned a badge
      Collaborator
    • Reacting Well
      Dys Topia earned a badge
      Reacting Well
    • Conversation Starter
      NovaEdgeX earned a badge
      Conversation Starter
    • One Year In
      Console General earned a badge
      One Year In
    • Week One Done
      Twozo Technologies earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      517
    2. 2
      +Edouard
      182
    3. 3
      PsYcHoKiLLa
      106
    4. 4
      Steven P.
      88
    5. 5
      ATLien_0
      68
  • Tell a friend

    Love Neowin? Tell a friend!