PHP判断干支、生肖和星座
PHP编程教程
2014-09-10 10:25:53
84
PHP通过出生日期判断干支、生肖和星座
/** * 判断干支、生肖和星座 * * @param string $$type 返回类型: array. * @param date $$birth = 时间戳,其它时间写法 * * @作者 bottle * @修改 shooke 修复5.3+报错bug */ //示例 $$arr = birthext('474768000'); //时间戳 print_r($$arr); $$arr = birthext('1985-01-17'); print_r($$arr); $$arr = birthext('20140909'); print_r($$arr); function birthext($$birth) { if(strstr($$birth,'-')===false && strlen($$birth)!==8) { $$birth = date("Y-m-d",$$birth); } if(strlen($$birth)===8) { if(preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})$$/i',$$birth,$$bir)) $$birth = "{$$bir[1]}-{$$bir[2]}-{$$bir[3]}"; } if(strlen($$birth)<8) { return false; } $$tmpstr= explode('-', $$birth); if (count($$tmpstr)!==3) { return false; } $$y = (int)$$tmpstr[0]; $$m = (int)$$tmpstr[1]; $$d = (int)$$tmpstr[2]; $$result = array(); $$xzdict = array('摩羯', '水瓶', '双鱼', '白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手'); $$zone = array(1222,122,222,321,421,522,622,722,822,922,1022,1122,1222); if((100 * $$m + $$d) >= $$zone[0] || (100 * $$m + $$d) < $$zone[1]) { $$i=0; } else { for($$i=1;$$i<12;$$i++) { if((100 * $$m + $$d) >= $$zone[$$i] && (100 * $$m + $$d)< $$zone[$$i+1]) { break; } } } $$result['xz'] = $$xzdict[$$i] . '座'; $$gzdict = array(array('甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'), array('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥')); $$i= $$y-1900+36 $$result['gz'] = $$gzdict[0][($$i%10)] . $$gzdict[1][($$i%12)]; $$sxdict = array('鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'); $$result['sx'] = $$sxdict[(($$y-4)%12)]; return $$result; }