php中根据生日判断星座、生肖程序代码
星座判断很简单我们要统计出每个星期所有日期时间段了,然后获取日期进行查询即可了,下面我给大家举两个实例,有需要的同学可参考.
星座:我是根据这个时间表写的,该时间表未必准确.
'水瓶座'=>'(1/22-2/21)', '双鱼座'=>'(2/22-3/21)',
'白羊座'=>'(3/22-4/21)', '金牛座'=>'(4/22-5/21)',
'双子座'=>'(5/22-6/21)', '巨蟹座'=>'(6/22-7/21)',
'狮子座'=>'(7/22-8/21)', '处女座'=>'(8/22-9/21)',
'天秤座'=>'(9/22-10/21)', '天蝎座'=>'(10/22-11/21)',
'射手座'=>'(11/22-12/21)', '摩羯座'=>'(12/22-1/21)'
根据日期判断星座函数
实例代码如下:
function yige_constellation( $month , $day ) { // 检查参数有效性 if ( $month < 1 || $month > 12 || $day < 1 || $day > 31) return false; // 星座名称以及开始日期 $constellations = array ( array ( "20" => "宝瓶座" ), array ( "19" => "双鱼座" ), array ( "21" => "白羊座" ), array ( "20" => "金牛座" ), array ( "21" => "双子座" ), array ( "22" => "巨蟹座" ), array ( "23" => "狮子座" ), array ( "23" => "处女座" ), array ( "23" => "天秤座" ), array ( "24" => "天蝎座" ), array ( "22" => "射手座" ), array ( "22" => "摩羯座" ) ); list( $constellation_start , $constellation_name ) = each( $constellations [(int) $month -1]); if ( $day < $constellation_start ) list( $constellation_start , $constellation_name ) = each( $constellations [( $month -2 < 0) ? $month = 11: $month -= 2]); return $constellation_name ; }下面这个更全面可直接根据生日检查年龄,生肖,星座
实例代码如下:
<?php /** * 根据生日中的月份和日期来计算所属星座 * * @param int $birth_month * @param int $birth_date * @return string */ function get_constellation( $birth_month , $birth_date ) { //判断的时候,为避免出现1和true的疑惑,或是判断语句始终为真的问题,这里统一处理成字符串形式 $birth_month = strval ( $birth_month ); $constellation_name = array ( '水瓶座' , '双鱼座' , '白羊座' , '金牛座' , '双子座' , '巨蟹座' , '狮子座' , '处女座' , '天秤座' , '天蝎座)' , '射手座' , '摩羯座' ); if ( $birth_date <= 22) { if ( '1' !== $birth_month ) { $constellation = $constellation_name [ $birth_month -2]; } else { $constellation = $constellation_name [11]; } } else { $constellation = $constellation_name [ $birth_month -1]; } return $constellation ; } /** * 根据生日中的年份来计算所属生肖 * * @param int $birth_year * @return string */ function get_animal( $birth_year ) { //1900年是子鼠年 $animal = array ( '子鼠' , '丑牛' , '寅虎' , '卯兔' , '辰龙' , '巳蛇' , '午马' , '未羊' , '申猴' , '酉鸡' , '戌狗' , '亥猪' ); $my_animal = ( $birth_year -1900)%12; return $animal [ $my_animal ]; } /** * 根据生日来计算年龄 * * 用Unix时间戳计算是最准确的,但不太好处理1970年之前出生的情况 * 而且还要考虑闰年的问题,所以就暂时放弃这种方式的开发,保留思想 * * @param int $birth_year * @param int $birth_month * @param int $birth_date * @return int */ function get_age( $birth_year , $birth_month , $birth_date ) { $now_age = 1; //实际年龄,以出生时为1岁计 $full_age = 0; //周岁,该变量放着,根据具体情况可以随时修改 $now_year = date ( 'Y' ,time()); $now_date_num = date ( 'z' ,time()); //该年份中的第几天 $birth_date_num = date ( 'z' , mktime (0,0,0, $birth_month , $birth_date , $birth_year )); $difference = $now_date_num - $birth_date_num ; if ( $difference > 0) { $full_age = $now_year - $birth_year ; } else { $full_age = $now_year - $birth_year - 1; } $now_age = $full_age + 1; return $now_age ; } ?>查看更多关于php中根据生日判断星座、生肖程序代码 - php日期的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29230