• 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

    • Same Internet Archive seemed to grab the new version https://web.archive.org/web/20...d/Setup_MakeMKV_v1.18.4.exe
    • Windows 11 KB5094126, KB5093998 bugging out Office apps but it may not be Microsoft's fault by Sayan Sen Microsoft last week released Windows 11 KB5094126 and KB5093998 as the latest Patch Tuesday updates. Following that the company also published the accompanying dynamic updates under KB5094149, KB5095971, and KB5094156. Although the tech giant did not acknowledge any major problems, some users online reported various issues ranging from OneDrive and Dropbox access problems, BitLocker recovery lockouts, to blue screens and BSODs. You can read about them in this dedicated piece. While there is still no confirmation about those problems from Microsoft the company has admitted to another bug which we did not report on. The tech giant has confirmed it has received reports of an issue in which certain third-party applications may be unable to launch Microsoft Office apps or open Office documents after installing the Patch Tuesday. This affects both Windows 11 as well as Windows 10. The company says the problem impacts a subset of applications that rely on OLE (Object Linking and Embedding) automation to communicate with Microsoft Office programs. According to Microsoft, affected scenarios involve third-party software attempting to open Office applications or documents from within their own interface. In such cases, the Office program may fail to launch altogether, or the requested document may not open. Oddly there may not be any error message, which probably makes the issue difficult to diagnose. The bug affects several Office products, including Word, Excel, PowerPoint, Access, and other apps in the Microsoft Office suite when they are launched through the affected software. These include tax and accounting software such as CCH Engagement and Workpaper Manager, dental practice management solutions like Dentrix and Softdent, as well as the popular research and reference management tool Zotero. Microsoft adds that other applications using similar Office integration methods could also experience the same problematic behavior. To understand the issue it is important to look at OLE, the Microsoft technology involved. OLE allows different applications to work together and share data, while its Automation feature lets one program control another. Thus this enables third-party software to launch Microsoft Office apps, open documents, and perform tasks automatically without requiring users to switch between programs. Because many accounting, healthcare, research, and business applications rely on OLE automation to interact with Word, Excel, PowerPoint, and other Office apps, any disruption can break those workflows. As a result, affected software may be unable to open Office documents or launch Office applications even though the programs themselves continue to work normally. At the moment the company has not provided a permanent fix though it has confirmed that engineers are actively working on a resolution, which will be delivered through a future Windows update. As such additional details will be shared once more information becomes available. In the meantime, Microsoft recommends a simple workaround for affected users whic is to open the Office application or document directly rather than launching it through the third-party program. For enterprise customers and organizations managing larger deployments, Microsoft says an additional mitigation is available. Admins experiencing the problem on their managed devices are advised to contact Microsoft Support for business to obtain and apply the workaround.
    • It saddens me when cars are such dull colours now. Mine is bright metallic blue and I absolutely adore it for standing out in contrast to that depressing backdrop of traffic.
    • Sparkle 2.20.0 by Razvan Serea Sparkle is a free, open-source Windows optimization tool designed to make your PC faster, cleaner, and more private. With Sparkle, you can easily debloat Windows by removing unnecessary apps and services, disable Microsoft tracking to enhance privacy, and apply performance tweaks to boost speed. Its cleaner removes junk and temporary files, while every change is safe and fully reversible. Sparkle also features a modern, user-friendly interface with automatic updates, making system maintenance simple. Explore over 39 tweaks, from disabling telemetry and hibernation to optimizing network and game settings, all aimed at customizing and enhancing your Windows experience. Sparkle supports Windows 10 and 11. Sparkle 2.20.0 changelog: Debloat Tweak has animated border New homepage loading UI New Tweak Modal (Markdown Supported) Refactored GPU Detection Added Tests with vitest Added foobar2000 to apps Added Localsend to apps Updated Modal Styles Added styles for disabled inputs Added Animated Border to debloat-windows tweak Bumped dependencies Refactor System info logic for speed Tweak info modals now support Markdown Added Clear System info cache to settings Redesigned Home Page Loading UI Changed Some Icons around the app Download: Sparkle 2.20.0 | Portable | ~100.0 MB (Open Source) Links: Sparkle Website | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • lol it was a typo, fixed! haha imagine an actual 4TB Gen4 NVMe for $40 in 2026
  • Recent Achievements

    • 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
    • One Month Later
      Twozo Technologies earned a badge
      One Month Later
  • Popular Contributors

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

    Love Neowin? Tell a friend!