php获取日出日落时间

2021-11-02
// 获取指定经纬度,指定时间戳日落/日出和暮光开始/结束的数组
// 如果太阳一整天都在各自的天顶之下则所有参数值为false,如果太阳一整天都在各自的天顶之上则所有参数为true
date_sun_info($timestamp, $latitude, $longitude);
var_dump(date_sun_info($timestamp = time(), $latitude = '39.996569', $longitude = '116.526151'));
[
    'sunrise'                     => '日出时间戳',
    'sunset'                      => '日落时间戳',
    'transit'                     => '太阳处于天顶时的时间戳',
    'civil_twilight_begin'        => '民用黎明的开始(天顶角 = 96°),结束于sunrise',
    'civil_twilight_end'          => '民用黄昏的结束(天顶角 = 96°),始于sunset',
    'nautical_twilight_begin'     => '航海黎明的开始(天顶角 = 102°),结束于civil_twilight_begin',
    'nautical_twilight_end'       => '航海黄昏的结束(天顶角 = 102°),始于civil_twilight_end',
    'astronomical_twilight_begin' => '天文黎明的开始(天顶角 = 108°),结束于nautical_twilight_begin',
    'astronomical_t
    wilight_end '  => '天文黄昏的结束(天顶角 = 108°),始于nautical_twilight_end',
];
// 116.526151,39.996569
$formats = [
    SUNFUNCS_RET_STRING    => '字符串',
    SUNFUNCS_RET_DOUBLE    => '小数',
    SUNFUNCS_RET_TIMESTAMP => '时间戳',
];
// 根据经纬度$latitude, $longitude获取指定时间戳$timestamp的日出时间,返回结果类型为$format
date_sunrise($timestamp, $format = SUNFUNCS_RET_STRING, $latitude, $longitude);
var_dump(date_sunrise($timestamp = time(), $format = SUNFUNCS_RET_STRING, $latitude = '39.996569', $longitude = '116.526151'));

// 根据经纬度$latitude, $longitude获取指定时间戳$timestamp的日落时间,返回结果类型为$format
date_sunset($timestamp, $format = SUNFUNCS_RET_STRING, $latitude, $longitude);
var_dump(date_sunset($timestamp = time(), $format = SUNFUNCS_RET_STRING, $latitude = '39.996569', $longitude = '116.526151'));

 

{/if}