Calculateur de phase lunaire
Saisissez une date et voyez la phase de la Lune : le 1er janvier 2026, la Lune a 12,421 jours, elle est éclairée à 93,9 % et se trouve en gibbeuse croissante. Le calcul utilise le mois lunaire moyen de 29,530588853 jours. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Date
- 2026-01-01
- Âge lunaire (jours)
- 12,421
- Éclairement (%)
- 93,9
- Phase
- Gibbeuse croissante
- Cycle lunaire (jours)
- 29,530588853
À partir d'une date ISO, renvoie l'âge de la Lune en jours depuis une nouvelle lune connue, sa fraction éclairée en pourcentage et la phase nommée, en utilisant le mois synodique moyen de 29,530588853 jours.
Comment la phase de la Lune est calculée
La Lune passe de nouvelle à pleine, puis revient à nouvelle, en un mois synodique moyen de 29,530588853 jours. Le calculateur compte les jours entre une nouvelle lune connue et votre date, évaluée à 12:00 UTC, et ne garde que le reste dans le cycle en cours. Ce reste est l'âge de la Lune. La part éclairée du disque suit une courbe régulière de cet âge, proche de 0 % à la nouvelle lune et culminant à 100 % près de la pleine lune. Le 1er janvier 2026, l'âge est de 12,421 jours et l'éclairement de 93,9 %.
À quoi sert le résultat, et ses limites
Le nom de la phase vient du découpage du cycle en huit tranches de durée proche, de la nouvelle lune aux stades croissant, quartier et gibbeux, puis retour au début. C'est donc une source fiable pour les calendriers, les almanachs, les tableaux de bord et les icônes lunaires de chaque jour du mois. Il s'agit d'une approximation de phase moyenne qui ignore l'orbite légèrement elliptique de la Lune : la phase et l'éclairement peuvent s'écarter d'environ un jour. Pour des positions astronomiques précises, mieux vaut des éphémérides dignes de ce nom.
Cas d’usage
Calendriers et widgets d'almanach
Affichez la phase et l'illumination pour chaque jour d'un mois, en pilotant des icônes lunaires à partir de la phase nommée déterministe.
Questions fréquentes
Quelle période synodique utilise-t-il ?
Le mois synodique moyen de 29,530588853 jours, ancré sur une nouvelle lune de référence au 2000-01-06 18:14 UTC.
Quelle est la précision de la phase et de l'illumination ?
C'est un modèle par phase moyenne qui ignore l'excentricité orbitale, de sorte que les résultats sont exacts à environ un jour près, idéal pour les calendriers et les tableaux de bord.
Quelles sont les huit phases de la Lune dans l'ordre ?
Nouvelle lune, premier croissant, premier quartier, gibbeuse croissante, pleine lune, gibbeuse décroissante, dernier quartier et dernier croissant. Chacune couvre environ un huitième du mois lunaire, puis le cycle repart de la nouvelle lune.
Que signifie l'âge de la Lune ?
C'est le nombre de jours écoulés depuis la dernière nouvelle lune, de 0 à environ 29,53 avant que le cycle ne recommence. Le 1er janvier 2026, l'âge est de 12,421 jours, ce qui place la Lune en phase gibbeuse croissante.
À quelle heure de la journée la phase est-elle calculée ?
Chaque date est évaluée à 12:00 UTC, soit midi en temps universel. Il y a ainsi une seule réponse par date, et un calendrier affiche la même phase et le même éclairement où qu'il soit ouvert.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/moon-phase \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/moon-phase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/moon-phase",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/moon-phase", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/moon-phase", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"date": "2026-01-01"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.moon_phase",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Le modèle d'âge par mois synodique
L'illumination est dérivée de cet âge par (1 - cos(2*pi*age/SYNODIC_DAYS)) / 2 * 100, une courbe lisse culminant à 100 % près de la pleine lune et proche de 0 % à la nouvelle lune. Il évalue chaque date à 12:00 UTC, prend les millisecondes écoulées depuis l'époque, divise par 86400000 pour obtenir des jours, et réduit ce résultat modulo la longueur synodique ; un reste négatif est reporté en avant en ajoutant une période complète, de sorte que age_days est toujours dans [0, 29.53).
Comment le nom de la phase est choisi
C'est une approximation par phase moyenne : elle ignore l'excentricité de l'orbite de la Lune, de sorte que la phase nommée et l'illumination sont exactes à environ un jour près, ce qui suffit amplement pour des calendriers, des tableaux de bord et des contenus, mais pas pour un travail d'éphéméride précis. La chaîne de phase est sélectionnée en comparant age_days à huit seuils fixes, chacun représentant environ un huitième du mois synodique. Les âges inférieurs à 1.84566 sont 'new', puis 'waxing_crescent' en dessous de 5.53699, 'first_quarter' en dessous de 9.22831, 'waxing_gibbous' en dessous de 12.91963, 'full' en dessous de 16.61096, 'waning_gibbous' en dessous de 20.30228, 'last_quarter' en dessous de 23.99361 et 'waning_crescent' en dessous de 27.68493 ; toute valeur égale ou supérieure à cette dernière limite revient à 'new'. Parce que l'âge pour 2026-01-01 est 12.421, il tombe dans la bande waxing_gibbous.
Validation de la date et arrondi
La date doit être une chaîne au format strict AAAA-MM-JJ, vérifié par expression régulière ; le mois doit être de 1 à 12 et le jour de 1 à 31, et le calendrier réel est vérifié par une sonde UTC avant toute arithmétique, de sorte qu'une date impossible comme 2026-02-30, que le Date de JavaScript reporterait silencieusement en mars, est rejetée comme invalid_input plutôt qu'acceptée sans bruit. Le paramètre facultatif decimals vaut 3 par défaut et doit être un entier de 0 à 6. age_days est arrondi half-up à cette précision, tandis qu'illumination_percent est toujours arrondi à une seule décimale, quel que soit decimals. La réponse reprend aussi la date d'entrée et la constante synodic_days, et tout intermédiaire non fini déclenche invalid_input.
Cas d'intégration
Photographie et planification en extérieur
Interrogez illumination_percent sur une plage de dates pour trouver les nuits les plus sombres ou les plus claires pour l'astrophotographie ou le travail de terrain.
Automatisation de contenu et de planification
Traitez des dates par lots via l'API pour étiqueter des publications, des événements ou des guides de pêche/jardinage avec la bonne phase lunaire.
Questions techniques
Quels formats de date sont acceptés ?
Uniquement des chaînes strictes AAAA-MM-JJ. Les dates impossibles comme 2026-02-30 sont rejetées comme invalid_input plutôt que reportées.
Quelles sont les valeurs de phase possibles ?
new, waxing_crescent, first_quarter, waxing_gibbous, full, waning_gibbous, last_quarter et waning_crescent, choisies par seuils d'âge.
Est-ce gratuit et combien coûte l'API ?
Le widget intégré à la page est gratuit (tier A) et exécute le même cœur déterministe ; les appels API sont facturés par requête réussie à partir de $0.002.