[英]PHP/MySQL for Lunar calendar
我正在使用Yii2,而MySQL确实制作了农历日历应用程序。 我在表中有2个字段:normal_date和lunar_date(类型为DATE)。 在这里出现问题:对于普通日历,日期1950-04-16应该是农历中的日期1950-02-30。 PHP DateTime类或MySQL DATE类型都不接受。 我想问的是,我应该使用哪种类型来存储lunar_date数据,以及应该使用哪种PHP库来处理此类数据。
我的应用程序必须非常正常地在normal_date和lunar_date之间进行转换,并且我的数据库将非常庞大,因为我将存储从1950年到2050年的数据。
您不能使用公历日期存储中国阴历日期,因为它们遵循不同的规则,正如您尝试存储1950-02-30
清楚显示的那样。 另外,在MySQL和PHP中都可以进行的操作(例如在日期中增加天数)将是不兼容的。
因此,您主要有两种选择:
"1950-02-30"
,或者 SMALLINT
和两个TINYINT
,以及PHP中具有3个数字属性的class
(为了保持整洁,但也可以传递3个变量)。 让我提到,您可能会发现将日期转换为日历转换的最常见中间表示形式(即儒略日编号)很有用。 在PHP中,您具有gregoriantojd
和jdtogregorian
,在MySQL中,您可以使用TO_DAYS(gregorian_date) + 1721060
和FROM_DAYS(julian_day_number - 1721060)
。 不幸的是,中文日历没有类似的东西(尽管PHP中的希伯来日历也没有),因此您可以在这里欣赏精美的艺术品。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.