format('Y-m-d H:i'); } class JalaliDateTime { private $date; public function __construct($date) { $this->date = $date; } public function format($format) { // پیاده‌سازی تبدیل تاریخ // برای سادگی، از یک تقریب استفاده شده است $timestamp = strtotime($this->date); $jalaliDate = gregorian_to_jalali(date('Y', $timestamp), date('m', $timestamp), date('d', $timestamp)); $year = $jalaliDate[0]; $month = $jalaliDate[1]; $day = $jalaliDate[2]; $hour = date('H', $timestamp); $minute = date('i', $timestamp); if ($format == 'Y-m-d H:i') { return "$year-$month-$day $hour:$minute"; } } } function gregorian_to_jalali($gy, $gm, $gd) { // تبدیل تاریخ میلادی به شمسی // فرمول دقیق‌تر مورد نیاز است $gy -= 1600; $gm -= 1; $g_d_m = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if ($gy % 4 == 0 && ($gy % 100 != 0 || $gy % 400 == 0)) $g_d_m[2] = 29; $g_a = array(0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335); $j_d_m = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $j_g = array(0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4); $jd = $gd + $g_a[$gm] + ($gy - 1) * 365 + floor(($gy - 1) / 4) - floor(($gy - 1) / 100) + floor(($gy - 1) / 400); $jm = $j_g[($gm + 10) % 12]; $jy = $gy + 979; if ($jd > 79) { $cy = 19; $jy -= 1600; $jm -= $j_g[($gm + 10) % 12]; } else { $cy = 0; } $jd -= 79; $jmonth = 1 + floor($jd / 30); $jday = 1 + $jd % 30; if ($jmonth > 12) { $jmonth -= 12; $jy += 1; } return array($jy, $jmonth, $jday); } // خواندن پیام‌ها $messages = array(); if (file_exists($filePath)) { $lines = file($filePath, FILE_IGNORE_NEW_LINES); foreach ($lines as $line) { list($username, $message, $date) = explode("|", $line); $messages[] = array('username' => $username, 'message' => $message, 'date' => $date); } } // ارسال پیام if (isset($_POST['message'])) { $message = $_POST['message']; $username = $_SESSION['username']; $date = date('Y-m-d H:i'); $shamsiDate = getShamsiDate($date); file_put_contents($filePath, "$username|$message|$shamsiDate\n", FILE_APPEND); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // بعد از ارسال پیام، صفحه را به آخرین پیام برسانید echo ""; ?> چت‌روم ساده
-