当前位置:首页 > PHP教程 > php日期 > 列表

php 根据生日计算星座和生肖程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-29 09:25:00 浏览: 评论:0 

一个php 根据生日计算星座和生肖程序,有需要的朋友可参考参考.

魔羯座(12/22 – 1/19)、水瓶座(1/20 – 2/18)、双鱼座(2/19 – 3/20)、牡羊座(3/21 – 4/20)、金牛座(4/21 – 5/20)、双子座(5/21 – 6/21)、巨蟹座(6/22 – 7/22)、狮子座(7/23 – 8/22)、处女座(8/23 – 9/22)、天秤座(9/23 – 10/22)、天蝎座(10/23 – 11/21)、射手座(11/22 – 12/21)

PHP实例代码如下:

  1. /** 
  2. *getConstellation 根据出生生日取得星座 
  3. * 
  4. *@param String $brithday 用于得到星座的日期 格式为yyyy-mm-dd 
  5. * 
  6. *@param Array $format 用于返回星座的名称 
  7. * 
  8. *@return String 
  9. */ 
  10. function getConstellation($birthday$format=null) 
  11. $pattern = ‘/^d{4}-d{1,2}-d{1,2}$/’; 
  12. if (!preg_match($pattern$birthday$matchs)) 
  13.     return null; 
  14. $date = explode(‘-’, $birthday); 
  15. $year = $date[0]; 
  16. $month = $date[1]; 
  17. $day   = $date[2]; 
  18. if ($month <1 || $month>12 || $day < 1 || $day >31) 
  19.     return null; 
  20. //设定星座数组 
  21. $constellations = array
  22.       ‘摩羯座’, ‘水瓶座’, ‘双鱼座’, ‘白羊座’, ‘金牛座’, ‘双子座’, 
  23.       ‘巨蟹座’,'狮子座’, ‘处女座’, ‘天秤座’, ‘天蝎座’, ‘射手座’,); 
  24. //或 ‍‍$constellations = array( 
  25.       ‘Capricorn’, ‘Aquarius’, ‘Pisces’, ‘Aries’, ‘Taurus’, ‘Gemini’, 
  26.       ‘Cancer’,'Leo’, ‘Virgo’, ‘Libra’, ‘Scorpio’, ‘Sagittarius’,); 
  27. //设定星座结束日期的数组,用于判断 
  28. $enddays = array(19, 18, 20, 20, 20, 21, 22, 22, 22, 22, 21, 21,); 
  29. //如果参数format被设置,则返回值采用format提供的数组,否则使用默认的数组 
  30. if ($format != null) 
  31.     $values = $format
  32. else 
  33.     $values = $constellations
  34. //根据月份和日期判断星座 
  35. switch ($month
  36.     case 1: 
  37.       if ($day <= $enddays[0]) 
  38.       { 
  39.         $constellation = $values[0]; 
  40.       } 
  41.       else 
  42.       { 
  43.         $constellation = $values[1]; 
  44.       } 
  45.       break
  46.     case 2: 
  47.       if ($day <= $enddays[1]) 
  48.       { 
  49.         $constellation = $values[1]; 
  50.       } 
  51.       else 
  52.       { 
  53.         $constellation = $values[2]; 
  54.       } 
  55.       break
  56.     case 3: 
  57.       if ($day <= $enddays[2]) 
  58.       { 
  59.         $constellation = $values[2]; 
  60.       } 
  61.       else 
  62.       { 
  63.         $constellation = $values[3]; 
  64.       } 
  65.       break
  66.     case 4: 
  67.       if ($day <= $enddays[3]) 
  68.       { 
  69.         $constellation = $values[3]; 
  70.       } 
  71.       else 
  72.       { 
  73.         $constellation = $values[4]; 
  74.       } 
  75.       break
  76.     case 5: 
  77.       if ($day <= $enddays[4]) 
  78.       { 
  79.         $constellation = $values[4]; 
  80.       } 
  81.       else 
  82.       { 
  83.         $constellation = $values[5]; 
  84.       } 
  85.       break
  86.     case 6: 
  87.       if ($day <= $enddays[5]) 
  88.       { 
  89.         $constellation = $values[5]; 
  90.       } 
  91.       else 
  92.       { 
  93.         $constellation = $values[6]; 
  94.       } 
  95.       break
  96.     case 7: 
  97.       if ($day <= $enddays[6]) 
  98.       { 
  99.         $constellation = $values[6]; 
  100.       } 
  101.       else 
  102.       { 
  103.         $constellation = $values[7]; 
  104.       } 
  105.       break
  106.     case 8: 
  107.       if ($day <= $enddays[7]) 
  108.       { 
  109.         $constellation = $values[7]; 
  110.       } 
  111.       else 
  112.       { 
  113.         $constellation = $values[8]; 
  114.       } 
  115.       break
  116.     case 9: 
  117.       if ($day <= $enddays[8]) 
  118.       { 
  119.         $constellation = $values[8]; 
  120.       } 
  121.       else 
  122.       { 
  123.         $constellation = $values[9]; 
  124.       } 
  125.       break
  126.     case 10: 
  127.       if ($day <= $enddays[9]) 
  128.       { 
  129.         $constellation = $values[9]; 
  130.       } 
  131.       else 
  132.       { 
  133.         $constellation = $values[10]; 
  134.       } 
  135.       break
  136.     case 11: 
  137.       if ($day <= $enddays[10]) 
  138.       { 
  139.         $constellation = $values[10]; 
  140.       } 
  141.       else 
  142.       { 
  143.         $constellation = $values[11]; 
  144.       } 
  145.       break
  146.     case 12: 
  147.       if ($day <= $enddays[11]) 
  148.       { 
  149.         $constellation = $values[11]; 
  150.       } 
  151.       else 
  152.       { 
  153.         $constellation = $values[0]; 
  154.       } 
  155.       break
  156. return $constellation
  157. js格式的: 
  158. 根据生日的月份和日期,计算星座的js小函数(最简) 
  159. // 根据生日的月份和日期,计算星座。  http://blog.111cn.net/cuixiping/ 
  160. function getAstro(month,day){ 
  161.     var s=”魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯”; 
  162.     var arr=[20,19,21,21,21,22,23,23,23,23,22,22]; 
  163.     return s.substr(month*2-(day<arr[month-1]?2:0),2); 
  164. // 取星座, 参数分别是 月份和日期 
  165. function getxingzuo(month,day){ 
  166. //by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
  167. var d=new Date(1999,month-1,day,0,0,0); 
  168. var arr=[]; 
  169. arr.push(["魔羯座",new Date(1999, 0, 1,0,0,0)]) 
  170. arr.push(["水瓶座",new Date(1999, 0,20,0,0,0)]) 
  171. arr.push(["双鱼座",new Date(1999, 1,19,0,0,0)]) 
  172. arr.push(["牡羊座",new Date(1999, 2,21,0,0,0)]) 
  173. arr.push(["金牛座",new Date(1999, 3,21,0,0,0)]) 
  174. arr.push(["双子座",new Date(1999, 4,21,0,0,0)]) 
  175. arr.push(["巨蟹座",new Date(1999, 5,22,0,0,0)]) 
  176. arr.push(["狮子座",new Date(1999, 6,23,0,0,0)]) 
  177. arr.push(["处女座",new Date(1999, 7,23,0,0,0)]) 
  178. arr.push(["天秤座",new Date(1999, 8,23,0,0,0)]) 
  179. arr.push(["天蝎座",new Date(1999, 9,23,0,0,0)]) 
  180. arr.push(["射手座",new Date(1999,10,22,0,0,0)]) 
  181. arr.push(["魔羯座",new Date(1999,11,22,0,0,0)]) 
  182. for(var i=arr.length-1;i>=0;i–){ 
  183. if (d>=arr[i][1]) return arr[i][0]; 
  184. function getxingzuo(month,day){ 
  185. var s=”魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯”; 
  186. var arr=[19,50,84,116,148,181,214,246,278,310,341,373,383]; 
  187. for(var i=0;i<arr.length;i++){ 
  188. if ((((month-1)<<5)+day) <= arr[i]) return s.substr(i*2,2); 
  189. return “error”; 
  190. 计算生肖的: 
  191. function birthday2BornTag($birthday){ 
  192. $year = substr($birthday,0,4); 
  193. $bornTagarray = array(“猴”, “鸡”, “狗”, “猪”, “鼠”, “牛”, “虎”, “兔”, “龙”, “蛇”, 
  194.  
  195. “马”, “羊”); 
  196. $index = $year%12; 
  197. $bornTag = $bornTagarray[$index]; 
  198. return $bornTag
  199. echo birthday2BornTag(’1983-12-19′); 

Tags: php 生日计算 星座生肖

分享到: