<?php
// includes/date_intl.php - تبدیل تاریخ با IntlDateFormatter

/**
 * تبدیل تاریخ میلادی به شمسی با استفاده از IntlDateFormatter
 * نیاز به نصب extension intl دارد
 */
function intlJalali($date, $format = 'Y/m/d') {
    if (empty($date)) {
        return '-';
    }
    
    // حذف زمان
    $dateParts = explode(' ', trim($date));
    $dateStr = $dateParts[0];
    
    // تجزیه تاریخ میلادی
    $parts = explode('-', $dateStr);
    if (count($parts) != 3) {
        return $dateStr;
    }
    
    $gy = (int)$parts[0];
    $gm = (int)$parts[1];
    $gd = (int)$parts[2];
    
    if ($gy < 1900 || $gy > 2100 || $gm < 1 || $gm > 12 || $gd < 1 || $gd > 31) {
        return $dateStr;
    }
    
    try {
        // ایجاد شیء DateTime
        $datetime = new DateTime();
        $datetime->setDate($gy, $gm, $gd);
        
        // ایجاد فرمتر برای تاریخ شمسی
        $formatter = new IntlDateFormatter(
            'fa_IR@calendar=persian',
            IntlDateFormatter::NONE,
            IntlDateFormatter::NONE,
            null,
            null,
            'yyyy/MM/dd'
        );
        
        return $formatter->format($datetime);
        
    } catch (Exception $e) {
        return $dateStr;
    }
}
?>