/**
* @param $birthday 日期
* @return mixed|null
*/
public function get_constellation($birthday)
{
//传入$birthday格式如:2018-05-06
//为了防止格式不一致,先格式化一下日期
$birthday=strtotime($birthday);
$birthday=date('Y-m-d',$birthday);
$month = intval(substr($birthday, 5, 2));
$day = intval(substr($birthday, 8, 2));
if ($month < 1 || $month > 12 || $day < 1 || $day > 31)
{
return NULL;
}
$signs = 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' => '摩羯座')
);
//为了兼容PHP7.2以上,因为each函数已被弃用
if(version_compare(PHP_VERSION,'7.2.0', '<')){
list($start, $name) = each($signs[$month - 1]);
if ($day < $start)
{
list($start, $name) = each($signs[($month - 2 < 0) ? 11 : $month - 2]);
}
}else{
$start=key($signs[$month - 1]);
$name=current($signs[$month - 1]);
if ($day < $start)
{
$start=key($signs[($month - 2 < 0) ? 11 : $month - 2]);
$name=current($signs[($month - 2 < 0) ? 11 : $month - 2]);
}
}
return $name;
}