历史上的今天

有黄历、历史今天等

接口状态:正常
总调用:68
添加时间:2025-08-14
更新时间:2025-10-05

请求信息

请求地址:
http://api-v2.yuafeng.cn/API/almanac.php
示例地址:
http://api-v2.yuafeng.cn/API/almanac.php

请求参数

参数名类型必填说明
apikeystringYour key.

收费情况

是否收费 单次调用费用 收费类型 免费调用额度
0.0000 元/次 按次计费

状态码说明

状态码说明
200请求成功,服务器已成功处理了请求。
403服务器拒绝请求。这可能是由于缺少必要的认证凭据(如API密钥)或权限不足。
404请求的资源未找到。请检查您的请求地址是否正确。
429请求过于频繁。您已超出速率限制,请稍后再试。
500服务器内部错误。服务器在执行请求时遇到了问题。

在线测试

{
    "code": 0,
    "msg": "获取数据成功",
    "data": {
        "days": {
            "days": 20251004,
            "lunar": 20250813,
            "leap": false,
            "yearGanZhi": "乙巳",
            "monthGanZhi": "乙酉",
            "dayGanZhi": "丙午",
            "pzTaboo": "丙不修灶必见灾殃 午不苫盖屋主更张",
            "auspicious": "祭祀 冠笄 捕捉 馀事勿取",
            "taboo": "嫁娶 开市 盖屋 作梁 合寿木",
            "fetalGod": "厨灶碓房内东",
            "fiveElements": "天河水 收执位",
            "auspiciousGod": "福生 金匮 鸣吠",
            "ferocious": "天罡 大时 大败 咸池 天贼 九坎 九焦",
            "joyGod": "西南",
            "blessingGod": "正西",
            "fortuneGod": "西南",
            "collisionEvil": "煞北 马日冲鼠"
        },
        "history": [
            {
                "id": 1426873216923653,
                "days": 1004,
                "year": 1947,
                "event": "人类首次突破音速",
                "url": "https://image.52mengdong.com/workshop/almanac/history/44f5f817-2e9d-4fb8-9ace-293d1b871803.jpeg",
                "details": "1947年10月4日,查克·耶格尔成为第一位做超音速飞行的人。\n这位美国前战斗机驾驶员登上贝尔X·1型喷气式飞机。从加利福尼亚的一个秘密陆军基地起飞。几分钟后,他的时速就达到了960公里,突破了音障。耶格尔驾驶的飞机取名为“魅力格伦尼斯”,以一种新型火箭为动力,机身为流线型以减少加速时产生的颠簸。其它国家也在改进自己的飞机使其速度超过音速·“马赫·1”。"
            },
            {
                "id": 1426873216923654,
                "days": 1004,
                "year": 1957,
                "event": "前苏联发射世界上第一颗人造卫星",
                "details": "1957年10月4日。苏联宣布成功地把世界上第一颗绕地球运行的人造卫星送入轨道。美国官员宣称,他们不仅因苏联首先成功地发射卫星感到震惊,而且对这颗卫星的体积之大感到惊讶。这颗卫星重83公斤,比美国准备在第尔年初发射的卫星重8倍。\n苏联宣布说,这颗卫星的球体直径为55厘米,绕地球一周需1小时35分,距地面的最大高度为900公里,用两个频道连续发送信号。由于运行轨道和赤道成65度夹角,因此它每日可两次在莫斯科上空通过。苏联对发射这颗卫星的火箭没做详细报道,不过曾提到它以每秒8公里的速度离开地面。他们说,这次发射开辟了星际航行的道路。\n苏联的发射卫星计划和美国的发射卫星计划一样,都是国际地球物理年的组成部分,是探索地球及其大气层奥秘的共同努力。美国专家说,苏联的卫星不能马上用于军事,但表明了他们在宇宙探索方面占优势。苏联科学家在宣布他们卫星发射计划时调子很低,并坚持认为他们没有同美国进行宇宙竞争。"
            },
            {
                "id": 1426873216923659,
                "days": 1004,
                "year": 1991,
                "event": "南极环保议定书通过",
                "details": "1991年10月4日,在西班牙首都马德里举行的第11届4次南极条约协商国特别会议,通过了《关于环境保护的南极条约议定书》。26个南极条约协商国中,包括中、美、英、法、苏等23国签署了议定书。该议定书将于1992年10月3日生效。议定书规定:南极地区为专门用于和平和科学目的的自然保护区。议定书为保护南极大陆及附近地区的生态环境免遭破坏制定了严格的保护措施,其中包括在今后50年内,禁止在南极地区进行一切商业性矿产资源开发活动等。议定书是人类为保护地球自然环境作出的一个理智的决定,是和平利用南极的一大进步。"
            },
            {
                "id": 1426873216923663,
                "days": 1004,
                "year": 1994,
                "event": "马拉多纳开始教练生涯",
                "details": "1994年10月4日早上,马拉多纳与卡洛斯·弗伦飞往阿根廷东北部城市科连特斯,在那里共同担任曼迪尤体育俱乐部的足球队教练,开始新的职业。\n曼迪尤是阿根廷20支甲级足球队之一,前国家队门将戈依戈切亚现在该队效力。马拉多纳的父亲是科连特斯省人。\n马拉多纳与该俱乐部主席罗伯托·鲁斯达成了这一协议,但尚未签署合同。马拉多纳与弗伦曾经同时是阿根廷青年俱乐部队的球员,弗伦曾当过独立俱乐部队的教练。由于马拉多纳没有任教练的证书,根据阿根廷足协的规章,正式比赛时他不能进入现场。在此之前,马拉多纳曾在博卡青年队当了几天梅诺蒂教练的助手。"
            }
        ],
        "auspiciousConfig": [
            {
                "id": 1469618652021760,
                "type": "热门",
                "name": "结婚"
            },
            {
                "id": 1469620545291264,
                "type": "热门",
                "name": "开业"
            },
            {
                "id": 1469622307423232,
                "type": "热门",
                "name": "订婚"
            },
            {
                "id": 1469627814187008,
                "type": "热门",
                "name": "搬家"
            },
            {
                "id": 1469632781914112,
                "type": "生活",
                "name": "装修"
            },
            {
                "id": 1469631057203200,
                "type": "生活",
                "name": "出行"
            },
            {
                "id": 1469654214938624,
                "type": "生活",
                "name": "交易"
            },
            {
                "id": 1469660173668352,
                "type": "生活",
                "name": "开市"
            },
            {
                "id": 1469661433434112,
                "type": "生活",
                "name": "栽种"
            },
            {
                "id": 1469663460003840,
                "type": "生活",
                "name": "沐浴"
            },
            {
                "id": 1469664431575040,
                "type": "生活",
                "name": "置产"
            },
            {
                "id": 1469665816023040,
                "type": "生活",
                "name": "理发"
            },
            {
                "id": 1469666507296768,
                "type": "其他",
                "name": "祭祀"
            },
            {
                "id": 1469667028013056,
                "type": "其他",
                "name": "动土"
            },
            {
                "id": 1469667813036032,
                "type": "其他",
                "name": "拆卸"
            },
            {
                "id": 1469672781287424,
                "type": "其他",
                "name": "求医"
            }
        ]
    }
}

调用示例

<?php
$url = 'http://api-v2.yuafeng.cn/API/almanac.php';
$params = ['apikey' => 'YOUR_VALUE', ];
$url .= '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
-- 加载依赖库(需确保已安装 luasocket,安装命令:luarocks install luasocket)
 local http = require("socket.http")
 local ltn12 = require("ltn12")
 local url = require("socket.url")
 -- 1. 基础配置(替换为你的实际参数)
 local baseUrl = "http://api-v2.yuafeng.cn/API/almanac.php"
 local urlParam = "YOUR_VALUE"  -- 替换为实际URL参数值
 local apikey = "YOUR_VALUE"    -- 替换为实际API密钥
 -- 2. 编码查询参数(避免特殊字符导致请求错误,对应Java的URLEncoder)
 local encodedParam = url.escape(urlParam)
 local encodedApikey = url.escape(apikey)
 -- 3. 构建完整请求URL(拼接基础URL和查询参数)
 local fullUrl = string.format("%s?%s&apikey=%s", baseUrl, encodedParam, encodedApikey)
 -- 4. 配置请求选项(设置超时、响应接收方式)
 local response = {}  -- 用于存储响应内容
 local requestOptions = {
     url = fullUrl,
     method = "GET",
     timeout = 5,  -- 超时时间(秒),对应Java的5000ms
     sink = ltn12.sink.table(response)  -- 将响应写入response表
 }
 -- 5. 发送请求并处理结果
 local statusCode, responseHeaders, responseStatusLine = http.request(requestOptions)
 -- 6. 解析响应
 if statusCode == 200 then  -- 对应Java的 HTTP_OK(200)
     -- 拼接响应内容(response表中存储的是按行分割的字符串)
     local responseBody = table.concat(response)
     print("请求成功,响应内容:")
     print(responseBody)
 else
     -- 打印失败信息(状态码、错误描述)
     print("请求失败,响应码: " .. tostring(statusCode))
     print("响应状态描述: " .. tostring(responseStatusLine))
 end
package main
import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

func main() {
	// API 的基础 URL
	baseURL := "http://api-v2.yuafeng.cn/API/almanac.php"
	// 要传递的参数
	urlParam := "YOUR_VALUE"
	//你的apikey
	apikey := "YOUR_VALUE"
	
	// 构建带参数的请求 URL
	requestURL := fmt.Sprintf("%s?apikey=%s&%s", baseURL, url.QueryEscape(apikey), url.QueryEscape(urlParam))

	// 发送 GET 请求
	resp, err := http.Get(requestURL)
	if err != nil {
		fmt.Printf("请求发送失败: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// 读取响应内容
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("读取响应失败: %v\n", err)
		return
	}

	// 输出响应结果
	fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class HttpRequestDemo {
    public static void main(String[] args) {
        try {
            // 基础URL
            String baseUrl = "http://api-v2.yuafeng.cn/API/almanac.php";
            
            // 参数
            String urlParam = "YOUR_VALUE"; // 替换为实际的URL参数值
            String apikey = "YOUR_VALUE";   // 替换为实际的API密钥
            
            // 构建查询参数
            String query = String.format("%s&apikey=%s",
                    URLEncoder.encode(urlParam, StandardCharsets.UTF_8.toString()),
                    URLEncoder.encode(apikey, StandardCharsets.UTF_8.toString()));
            
            // 创建完整的URL
            String fullUrl = baseUrl + "?" + query;
            
            // 创建URL对象
            URL url = new URL(fullUrl);
            
            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            
            // 设置请求方法
            connection.setRequestMethod("GET");
            
            // 设置超时时间(可选)
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            
            // 获取响应代码
            int responseCode = connection.getResponseCode();
            
            // 读取响应内容
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader reader = new BufferedReader(
                    new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
                
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                reader.close();
                
                String result = response.toString();
                
                // 输出响应结果
                System.out.println(result);
            } else {
                System.out.println("请求失败,响应码: " + responseCode);
            }
            
            // 关闭连接
            connection.disconnect();
            
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("请求失败,报错块: " + e.getMessage());
        }
    }
}
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;

public class HttpRequestDemo {
    public static void main(String[] args) {
        // OkHttpClient 实例,可复用,建议全局单例
        OkHttpClient client = new OkHttpClient();

        // 参数
        String urlParam = "YOUR_VALUE"; // 替换为实际的URL参数值
        urlParam = urlParam + "&apikey=" + "YOUR_VALUE";   // 替换为实际的API密钥
        String apiBaseUrl = "http://api-v2.yuafeng.cn/API/almanac.php"; 

        // 构建带参数的请求 URL
        String requestUrl = apiBaseUrl + "?" + urlParam;

        // 构建请求
        Request request = new Request.Builder()
                .url(requestUrl)
                .get() // 明确为 GET 请求(OkHttp 默认也是 GET,可省略)
                .build();

        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                // 如果请求成功,获取并打印响应体内容
                assert response.body() != null;
                System.out.println(response.body().string());
            } else {
                // 请求失败时,打印响应码等信息
                System.out.println("请求失败,响应码:" + response.code());
            }
        } catch (IOException e) {
            // 捕获 IO 异常并打印
            e.printStackTrace();
            System.out.println("请求失败,报错块: " + e.getMessage());
        }
    }
}
import requests

url = "http://api-v2.yuafeng.cn/API/almanac.php"
params = {
    'apikey': 'YOUR_VALUE',
}
response = requests.get(url, params=params)
print(response.text)
const url = new URL('http://api-v2.yuafeng.cn/API/almanac.php');
const params = {
    'apikey': 'YOUR_VALUE',
};
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));

fetch(url)
    .then(response => response.text())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));