进入我的主页,查看更多JS的分享!
我的代码有多短,本文章就有多短!(ㅍ_ㅍ)
先贴上代码:
/**
* 转换:星座
* 百度百科:
* ["1222-0120", "0121-0219", "0220-0320", "0321-0420", "0421-0521", "0522-0621", "0622-0722", "0723-0822", "0823-0922", "0923-1023", "1024-1122", "1123-1221"]
* 百度百科,美索不达米亚占星术:
* ["1222-0120", "0121-0219", "0220-0320", "0321-0420", "0421-0521", "0522-0621", "0622-0722", "0723-0823", "0824-0923", "0924-1023", "1024-1122", "1123-1221"];
* 新浪:
* ["1222-0120", "0121-0219", "0220-0320", "0321-0420", "0421-0521", "0522-0621", "0622-0722", "0723-0823", "0824-0923", "0924-1023", "1024-1122", "1123-1221"]
* 第一星座网:
* ["1222-0119", "0120-0218", "0219-0320", "0321-0419", "0420-0520", "0521-0621", "0622-0722", "0723-0822", "0823-0922", "0923-1023", "1024-1122", "1123-1221"]
*/
var constellation = (date = new Date()) = >{
const XZDate = ["1222-0120", "0121-0219", "0220-0320", "0321-0420", "0421-0521", "0522-0621", "0622-0722", "0723-0822", "0823-0922", "0923-1023", "1024-1122", "1123-1221"];
const XZText = ["魔羯", "水瓶", "双鱼", "白羊", "金牛", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "射手"];
let t = formatNumber(date.getMonth() + 1) + formatNumber(date.getDate());
let index;
if (t <= "0120") {
index = 0;
} else {
index = XZDate.findIndex((item) = >{
let arr = item.split("-");
return t >= arr[0] && t <= arr[1];
});
}
return XZText[index];
};
// 格式化:日期数字
var formatNumber = (n) = >{
n = n.toString();
return n[1] ? n: "0" + n;
};
思路:获取当前日期,以指定的格式与星座的日期数组进行对比,满足条件则得到了索引,最终得到星座文本。
运行:
let t = new Date().getTime() + 1000 * 60 * 60 * 24 * 0;
console.log(constellation(new Date(t)));
//2020-7-4
//输出:巨蟹
一开始用百度百科的星座日期,敲完代码后,就去搜索关于星座的内容(老习惯了)
然后...怎么在不同的网站,对星座的日期还不一样啊???这就是标题上的疑问,真的是好奇妙啊~
你们是怎么解决的?