日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【FCC】Friendly Date Ranges

發布時間:2023/11/21 综合教程 54 生活家
生活随笔 收集整理的這篇文章主要介紹了 【FCC】Friendly Date Ranges 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

讓日期區間更友好!

把常見的日期格式如:YYYY-MM-DD 轉換成一種更易讀的格式。

易讀格式應該是用月份名稱代替月份數字,用序數詞代替數字來表示天 (1st 代替 1).

記住不要顯示那些可以被推測出來的信息: 如果一個日期區間里結束日期與開始日期相差小于一年,則結束日期就不用寫年份了;在這種情況下,如果月份開始和結束日期如果在同一個月,則結束日期月份也不用寫了。

另外, 如果開始日期年份是當前年份,且結束日期與開始日期小于一年,則開始日期的年份也不用寫。

例如:

包含當前年份和相同月份的時候,makeFriendlyDates(["2017-01-02", "2017-01-05"]) 應該返回 ["January 2nd","5th"]

不包含當前年份,makeFriendlyDates(["2003-08-15", "2009-09-21"]) 應該返回 ["August 15th, 2003", "September 21st, 2009"]。

請考慮清楚所有可能出現的情況,包括傳入的日期區間是否合理。對于不合理的日期區間,直接返回 undefined 即可

代碼:

<script type="text/javascript">
	function makeFriendlyDates(arr) {
		//獲取當前年份
		// var yearnow=(new Date()).getFullYear();
		var yearnow = 2017;

		var date1 = arr[0].split('-');
		var date2 = arr[1].split('-');

		//去除不正確日期
		if (date1[0] > date2[0]) {
			return undefined;
		}
		if (date1[0] == date2[0] && date1[1] > date2[1]) {
			return undefined;
		}
		if (date1[0] == date2[0] && date1[1] == date2[1] && date1[2] > date2[2]) {
			return undefined;
		}

		//把日期轉換成對應的簡便字符串
		function daytostr(day) {
			//先轉為數值,判斷后再轉為字符串
			day = parseInt(day);
			if (day == 1 || day == 21 || day == 31) {
				return day.toString() + 'st';
			} else if (day == 2 || day == 22) {
				return day.toString() + 'nd';
			} else if (day == 3 || day == 23) {
				return day.toString() + 'rd';
			} else {
				return day.toString() + 'th';
			}
		}

		//定義月份的英文表示
		var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October",
			"November", "December"
		];
		var date1str = '';
		var date2str = '';
		var newDate = [];

		//數組不能直接比較
		if (date1[0] == date2[0] && date1[1] == date2[1] && date1[2] == date2[2]) {
			newDate.push(months[date1[1] - 1] + ' ' + daytostr(date1[2]) + ', ' + date1[0]);
			return newDate;
		} else if (parseInt(date1[0]) == yearnow || date1[0] == date2[0]) {
			date1str = months[date1[1] - 1] + ' ' + daytostr(date1[2]);
		} else {
			date1str = months[date1[1] - 1] + ' ' + daytostr(date1[2]) + ', ' + date1[0];
		}

		newDate.push(date1str);

		console.log(date1);
		console.log(date2);

		//如果同年同月
		if (date1[0] == date2[0] && date1[1] == date2[1]) {
			date2str = daytostr(date2[2]);
			//如果同年不同月
		} else {
			date2str = months[date2[1] - 1] + ' ' + daytostr(date2[2]);
		}

		if (date2[0] - date1[0] > 1 || ((date2[0] - date1[0] == 1) && (date2[1] - date1[1] > 0)) || ((date2[0] - date1[0] ==
				1) && (date2[1] - date1[1] == 0) && (date2[2] - date1[2] >= 0))) {
			date2str = date2str + ', ' + date2[0];
		} else if (date1[0] == yearnow) {

		}

		return newDate;
	}
</script>

總結

以上是生活随笔為你收集整理的【FCC】Friendly Date Ranges的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。