Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function makeFriendlyDates(arr) {
- var months = ["January", "Febraury", "March", "April",
- "May", "June", "July", "August",
- "September", "October", "November", "December"];
- function ordinal(num){
- var end = "th";
- if (num % 10 == 1){
- end = "st";
- }else if (num % 10 == 2){
- end = "nd";
- }else if (num % 10 == 3 && num != 13){
- end = "rd";
- }
- return num + end;
- }
- var result = [];
- var one = arr[0].split('-');
- var two = arr[1].split('-');
- for (var i = 0; i<one.length; i++){
- one[i] = parseInt(one[i]);
- }
- for (var j = 0; j<two.length; j++){
- two[j] = parseInt(two[j]);
- }
- //year, month, day
- var date1 = new Date(one[0], one[1] - 1, one[2]);
- var date2 = new Date(two[0], two[1] - 1, two[2]);
- //used for testing
- //date1 = new Date(2022, 9 - 1, 5);
- //date2 = new Date(2023, 9 - 1, 4);
- var month2 = date2.getUTCFullYear()*12 + date2.getUTCMonth();
- var month1 = date1.getUTCFullYear()*12 + date1.getUTCMonth();
- var dayDiff = Math.abs(date2.getUTCDate() - date1.getUTCDate());
- var monthDiff = month2 - month1;
- var yearDiff = date2.getUTCFullYear() - date1.getUTCFullYear();
- //same day
- if (dayDiff === 0 && monthDiff === 0 && yearDiff === 0){
- return [months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()) + ", " +
- date1.getUTCFullYear()];
- }else if (monthDiff === 0 && date1.getUTCFullYear() == date2.getUTCFullYear()){
- //less than 12 months and same month and same year
- result.push(months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()));
- result.push(ordinal(date2.getUTCDate()));
- return result;
- }else if (monthDiff < 12 && date1.getUTCFullYear() == date2.getUTCFullYear()){
- //less than 12 months and same year
- result.push(months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()) + ", " +
- date1.getUTCFullYear());
- result.push(months[date2.getUTCMonth()] + " " + ordinal(date2.getUTCDate()));
- return result;
- }else if (monthDiff < 12){
- //less than 12 months
- result.push(months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()));
- result.push(months[date2.getUTCMonth()] + " " + ordinal(date2.getUTCDate()));
- return result;
- }else if (yearDiff == 1 && monthDiff == 12 && date1.getUTCDate() > date2.getUTCDate()){
- result.push(months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()) + ", " +
- date1.getUTCFullYear());
- result.push(months[date2.getUTCMonth()] + " " + ordinal(date2.getUTCDate()));
- return result;
- }else if (yearDiff >= 1){
- result.push(months[date1.getUTCMonth()] + " " + ordinal(date1.getUTCDate()) + ", " +
- date1.getUTCFullYear());
- result.push(months[date2.getUTCMonth()] + " " + ordinal(date2.getUTCDate()) + ", " +
- date2.getUTCFullYear());
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement