ES Module version of lune - calculate the phases of the moon
This library calculates the current phase of the moon as well as finds the dates of the recent moon phases.
npm install lune-esm
<script type="module">
import { phase } from 'lune-esm';
const phaseInfo = phase(new Date());
console.log(phaseInfo);
</script>
import { phase, phase_hunt, phase_range, PHASE_NEW, PHASE_FIRST, PHASE_FULL, PHASE_LAST } from 'lune-esm';
// Get current moon phase
const currentPhase = phase(new Date());
console.log(currentPhase);
// Hunt for recent moon phases
const phaseHunt = phase_hunt(new Date());
console.log(phaseHunt);
// Get phase range
const start = new Date('2023-01-01');
const end = new Date('2023-02-01');
const fullMoons = phase_range(start, end, PHASE_FULL);
console.log(fullMoons);
Finds the phase information for specific date.
phase_date
- Date to get phase information of. Defaults to current date.- Returns an object with:
phase
- Phase value (0 to 1)illuminated
- Illuminated percent (0 to 1)age
- Age of the moon in daysdistance
- Distance from Earth to Moon (km)angular_diameter
- Angular diameter of Moonsun_distance
- Distance from Earth to Sun (km)sun_angular_diameter
- Angular diameter of Sun
Find time of phases of the moon which surround the current date. Five phases are found, starting and ending with the new moons which bound the current lunation.
sdate
- Date to start hunting from (defaults to current date)- Returns an object containing recent past and future phases:
new_date
- Date of last new moonq1_date
- Date of first quarter moonfull_date
- Date of full moonq3_date
- Date of last quarter moonnextnew_date
- Date of next new moon
Find all phases of a given type within a date range.
start
- Start dateend
- End date- phase - Phase type (PHASE_NEW, PHASE_FIRST, PHASE_FULL, PHASE_LAST)
- Returns array of dates
PHASE_NEW
- New moon constant (0)PHASE_FIRST
- First quarter moon constant (1)PHASE_FULL
- Full moon constant (2)PHASE_LAST
- Last quarter moon constant (3)
import { phase } from 'lune-esm';
const currentPhase = phase(new Date());
console.log(`Moon phase: ${currentPhase.phase}`);
console.log(`Illuminated: ${(currentPhase.illuminated * 100).toFixed(2)}%`);
This is a derivative work based on lune by Ryan Seys, converted to ES Modules.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.