我正在做一个已经在两个国家运行的项目。一切都很好,直到我们在尼泊尔部署了这个项目。问题是他们不使用标准的公历。他们有自己的日历,叫做比克拉姆·桑万特日历。我们现有的数据库有DateTime/Date列,我不能再使用了,因为他们日历上的几个月有32天,根据公历,这不是一个有效的日期。因此,我们考虑将所有日期保存在3个不同的列中,如日,月和年。不仅如此,我们还使用了内置的标准SQL DateTime函数,如DateAdd, DateDiff等…因此,我还必须编写自己的函数并更改所有查询,存储过程和函数。
有人知道如何处理这个问题或有更好的想法吗?请给出你的意见和建议。
检查此php代码将AD转换为BS。
<?php
//The Vikram Samvat calendar is 56 years 8 months and 14 days ahead (in count) of the solar Gregorian calendar
//date_default_timezone_set('Asia/Kathmandu');
$date = date('Y-m-d');
$ts1 = strtotime($date);
$year1 = date('Y', $ts1) + 56;
$month1 = date('m', $ts1) + 8;
$day1 = date('d', $ts1) + 14;
if($month1 >12) {
$year1 = $year1+1;
//$remMonth = $month1-12;
$month1 = $month1-12;
}
if($day1 >30) {
$month1 = $month1+1;
//$remMonth = $month1-12;
$day1 = $day1-30;
}
//$day1 = date('d', $ts1);
echo $year1."-".$month1."-".$day1;
?>