Skip to content

Instantly share code, notes, and snippets.

@deandex
Created October 30, 2019 02:57
Show Gist options
  • Save deandex/8d7a270434510d1d78cc4bd43ca81445 to your computer and use it in GitHub Desktop.
Save deandex/8d7a270434510d1d78cc4bd43ca81445 to your computer and use it in GitHub Desktop.
Get a humanized, "Morning", "Afternoon", "Evening" from moment.js **Great for user greetings!** (ES6)
getGreetingTime = (currentTime, user = null) => {
if (!currentTime || !currentTime.isValid()) { return `Hello ${user ? ` ${user}` : ''}`; }
const splitAfternoon = 12; // 24hr time to split the afternoon
const splitEvening = 17; // 24hr time to split the evening
const currentHour = parseFloat(currentTime.format('HH'));
let greetingText = 'Good morning'; // Between dawn and noon
if (currentHour >= splitAfternoon && currentHour <= splitEvening) {
// Between 12 PM and 5PM
greetingText = 'Good afternoon';
} else if (currentHour >= splitEvening) {
// Between 5PM and Midnight
greetingText = 'Good evening';
}
return `${greetingText}${user ? `, ${user}` : ''}`;
}
/* USE
//The var "humanizedGreeting" below will equal (assuming the time is 8pm) "Good evening, James."
var user = "James";
var humanizedGreeting = getGreetingTime(moment(), user);
*/
@deandex
Copy link
Author

deandex commented Oct 30, 2019

@deandex
Copy link
Author

deandex commented Jul 16, 2020

New code :

const currentHour = new Date().getHours();

const greetingMessage =
  currentHour >= 4 && currentHour < 12 ? // after 4:00AM and before 12:00PM
  'Good morning.' :
  currentHour >= 12 && currentHour <= 17 ? // after 12:00PM and before 6:00pm
  'Good afternoon.' :
  currentHour > 17 || currentHour < 4 ? // after 5:59pm or before 4:00AM (to accommodate night owls)
  'Good evening.' : // if for some reason the calculation didn't work
  'Welcome'

console.log(greetingMessage)

Will test it later

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment