0

私はすでに 2 か国で実行されているプロジェクトに取り組んでいます。プロジェクトをネパールに展開するまでは、すべて順調でした。問題は、標準のグレゴリオ暦で機能していないことです。Bikram Sanwant Calendar と呼ばれる独自のカレンダーがあります。私たちの既存のデータベースには、グレゴリオ暦によると有効な日付ではない 32 日がカレンダーのいくつかの月にあるため、これ以上使用できない DateTime/Date 列があります。そのため、日、月、年のような 3 つの異なる列にすべての日付を保存することを考えました。それだけでなく、DateAdd、DateDiff などの組み込みの標準 SQL DateTime 関数も使用しています。そのため、独自の関数を作成し、すべてのクエリ、ストアド プロシージャ、および関数を変更する必要があります。

これに対処する方法を知っている人、またはこの問題についてより良い考えを持っている人はいますか?

ご意見やご提案をお寄せください。

前もって感謝します。

4

1 に答える 1

0

AD を BS に変換するには、この PHP コードを確認してください。これがあなたの理解を深めるのに役立つことを願っています。

<?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;

?>
于 2016-08-17T13:46:11.483 に答える