Whiz Tools

محول الطابع الزمني يونكس

الطابع الزمني يونكس هو عدد الثواني منذ 1 يناير 1970 (UTC)

التاريخ والوقت المحول

محول الطوابع الزمنية لنظام يونكس

المقدمة

تُعتبر الطوابع الزمنية لنظام يونكس (المعروفة أيضًا باسم وقت POSIX أو وقت Epoch) نظامًا لوصف نقطة زمنية. إنها عدد الثواني التي مرت منذ 1 يناير 1970 (منتصف الليل بتوقيت UTC/GMT)، دون احتساب الثواني الكبيسة. تُستخدم الطوابع الزمنية لنظام يونكس على نطاق واسع في أنظمة الكمبيوتر ولغات البرمجة لأنها توفر تمثيلًا مضغوطًا ومستقلًا عن اللغة للحظة معينة في الوقت.

يسمح لك هذا المحول بتحويل الطابع الزمني لنظام يونكس إلى تنسيق تاريخ ووقت سهل القراءة. يدعم كل من تنسيقات الوقت 12 ساعة (AM/PM) و24 ساعة لتلبية التفضيلات الإقليمية والشخصية المختلفة.

كيف تعمل الطوابع الزمنية لنظام يونكس

تُحسب الطوابع الزمنية لنظام يونكس كعدد الثواني منذ بداية نظام يونكس (1 يناير 1970، 00:00:00 بتوقيت UTC). وهذا يجعلها مفيدة بشكل خاص لحساب الفروق الزمنية ولتخزين التواريخ بتنسيق مضغوط.

تشمل عملية التحويل من الطابع الزمني لنظام يونكس إلى تاريخ تقويمي عدة خطوات:

  1. ابدأ مع بداية نظام يونكس (1 يناير 1970، 00:00:00 بتوقيت UTC)
  2. أضف عدد الثواني في الطابع الزمني
  3. احسب السنوات الكبيسة، وأطوال الأشهر المتغيرة، وغيرها من التعقيدات التقويمية
  4. طبق تعديلات المنطقة الزمنية إذا لزم الأمر

على سبيل المثال، يمثل الطابع الزمني لنظام يونكس 1609459200 يوم الجمعة، 1 يناير 2021، 00:00:00 بتوقيت UTC.

يمكن التعبير عن صيغة التحويل كالتالي:

التاريخ=بداية نظام يونكس+الطابع الزمني (بالثواني)\text{التاريخ} = \text{بداية نظام يونكس} + \text{الطابع الزمني (بالثواني)}

تقدم معظم لغات البرمجة وأنظمة التشغيل وظائف مدمجة للتعامل مع هذا التحويل، مما يخفف من تعقيدات حسابات التقويم.

خيارات تنسيق الوقت

يقدم هذا المحول خيارين لتنسيق الوقت:

  1. تنسيق 24 ساعة (المعروف أحيانًا باسم "الوقت العسكري"): تتراوح الساعات من 0 إلى 23، ولا يوجد تمييز AM/PM. على سبيل المثال، يتم تمثيل الساعة 3:00 مساءً كـ 15:00.

  2. تنسيق 12 ساعة: تتراوح الساعات من 1 إلى 12، مع AM (قبل الظهر) للأوقات من منتصف الليل إلى الظهر، وPM (بعد الظهر) للأوقات من الظهر إلى منتصف الليل. على سبيل المثال، يتم تمثيل الساعة 15:00 في تنسيق 24 ساعة كـ 3:00 مساءً.

الاختيار بين هذه التنسيقات هو في الغالب مسألة تقليد إقليمي وتفضيل شخصي:

  • يُستخدم تنسيق 24 ساعة بشكل شائع في معظم دول أوروبا وأمريكا اللاتينية وآسيا، بالإضافة إلى السياقات العلمية والعسكرية والطبية في جميع أنحاء العالم.
  • يُستخدم تنسيق 12 ساعة بشكل شائع في الولايات المتحدة وكندا وأستراليا وبعض الدول الناطقة بالإنجليزية للاستخدام اليومي.

الحالات الحدية والقيود

عند العمل مع الطوابع الزمنية لنظام يونكس، من المهم أن تكون على دراية بعدة حالات حدية وقيود:

  1. الطوابع الزمنية السلبية: تمثل هذه التواريخ قبل بداية نظام يونكس (1 يناير 1970). بينما هي صالحة رياضيًا، قد لا تتعامل بعض الأنظمة بشكل صحيح مع الطوابع الزمنية السلبية.

  2. مشكلة عام 2038: غالبًا ما يتم تخزين الطوابع الزمنية لنظام يونكس كأعداد صحيحة موقعة 32 بت، والتي ستفيض في 19 يناير 2038. بعد هذه النقطة، لن تكون الأنظمة التي تستخدم 32 بت قادرة على تمثيل الأوقات بشكل صحيح ما لم يتم تعديلها لاستخدام نوع عدد صحيح أكبر.

  3. الطوابع الزمنية الكبيرة جدًا: قد لا يمكن تمثيل التواريخ المستقبلية البعيدة في بعض الأنظمة، أو قد يتم التعامل معها بشكل غير متسق.

  4. الثواني الكبيسة: لا يأخذ الوقت في نظام يونكس في الاعتبار الثواني الكبيسة، التي تُضاف أحيانًا إلى UTC لتعويض دوران الأرض غير المنتظم. وهذا يعني أن الوقت في نظام يونكس ليس متزامنًا بدقة مع الوقت الفلكي.

  5. اعتبارات المنطقة الزمنية: تمثل الطوابع الزمنية لنظام يونكس لحظات بتوقيت UTC. يتطلب التحويل إلى الوقت المحلي معلومات إضافية عن المنطقة الزمنية.

  6. توقيت الصيف: عند تحويل الطوابع الزمنية إلى الوقت المحلي، يجب أخذ تعقيدات انتقالات توقيت الصيف في الاعتبار.

حالات الاستخدام

تُستخدم الطوابع الزمنية لنظام يونكس في العديد من التطبيقات عبر الحوسبة وإدارة البيانات:

  1. سجلات قواعد البيانات: تُستخدم الطوابع الزمنية عادةً لتسجيل متى تم إنشاء الإدخالات أو تعديلها.

  2. تطوير الويب: غالبًا ما تستخدم رؤوس HTTP وملفات تعريف الارتباط وآليات التخزين المؤقت الطوابع الزمنية لنظام يونكس.

  3. ملفات السجل: تسجل سجلات النظام عادةً الأحداث باستخدام الطوابع الزمنية لنظام يونكس لترتيبها زمنيًا بدقة.

  4. أنظمة التحكم في الإصدارات: تستخدم Git وأنظمة التحكم في الإصدارات الأخرى الطوابع الزمنية لتسجيل متى تم إجراء الالتزامات.

  5. استجابات واجهة برمجة التطبيقات: تتضمن العديد من واجهات برمجة التطبيقات على الويب الطوابع الزمنية في استجابتها للإشارة إلى متى تم إنشاء البيانات أو متى تم تعديل الموارد آخر مرة.

  6. أنظمة الملفات: تُخزن أوقات إنشاء وتعديل الملفات غالبًا كطوابع زمنية لنظام يونكس.

  7. إدارة الجلسات: تستخدم التطبيقات الويب الطوابع الزمنية لتحديد متى يجب أن تنتهي صلاحية جلسات المستخدم.

  8. تحليل البيانات: توفر الطوابع الزمنية طريقة موحدة للعمل مع البيانات الزمنية في تطبيقات التحليل.

البدائل

بينما تُستخدم الطوابع الزمنية لنظام يونكس على نطاق واسع، هناك تنسيقات بديلة لتمثيل الوقت قد تكون أكثر ملاءمة في سياقات معينة:

  1. ISO 8601: تنسيق سلسلة موحد (مثل "2021-01-01T00:00:00Z") يكون سهل القراءة مع الحفاظ على القابلية للفرز. يُفضل غالبًا لتبادل البيانات والتطبيقات الموجهة للمستخدم.

  2. RFC 3339: ملف تعريف لـ ISO 8601 يُستخدم في بروتوكولات الإنترنت، مع متطلبات تنسيق أكثر صرامة.

  3. التنسيقات سهلة القراءة: سلاسل التواريخ المحلية (مثل "1 يناير 2021") أكثر ملاءمة للتفاعل المباشر مع المستخدم ولكنها أقل ملاءمة للحسابات.

  4. Microsoft FILETIME: قيمة 64 بت تمثل عدد الفواصل الزمنية التي تبلغ 100 نانوثانية منذ 1 يناير 1601، تُستخدم في أنظمة Windows.

  5. رقم اليوم اليولياني: يُستخدم في علم الفلك وبعض التطبيقات العلمية، حيث يتم حساب الأيام منذ 1 يناير 4713 قبل الميلاد.

يعتمد اختيار تنسيق الوقت على عوامل مثل:

  • الدقة المطلوبة
  • احتياجات سهولة القراءة
  • قيود التخزين
  • التوافق مع الأنظمة الحالية
  • نطاق التواريخ التي يجب تمثيلها

التاريخ

نشأت فكرة الوقت في نظام يونكس مع تطوير نظام التشغيل يونكس في مختبرات بيل في أواخر الستينيات وأوائل السبعينيات. كان القرار باستخدام 1 يناير 1970 كepoch أمرًا عشوائيًا بعض الشيء ولكنه عملي في ذلك الوقت - كان قريبًا بما يكفي لتقليل متطلبات التخزين لتواريخ الاهتمام ولكن بعيدًا بما يكفي في الماضي ليكون مفيدًا للبيانات التاريخية.

استخدمت التنفيذات الأصلية عددًا صحيحًا موقّعًا 32 بت لتخزين عدد الثواني، وهو ما كان كافيًا لعمر أنظمة يونكس المتوقع في ذلك الوقت. ومع ذلك، أدى هذا القرار إلى مشكلة عام 2038 (المعروفة أحيانًا باسم "Y2K38" أو "خطأ الألفية لنظام يونكس")، حيث لا يمكن للأعداد الصحيحة الموقعة 32 بت تمثيل التواريخ بعد 19 يناير 2038 (03:14:07 بتوقيت UTC).

مع ازدياد شعبية أنظمة يونكس وأنظمة التشغيل المشابهة، أصبحت الطوابع الزمنية لنظام يونكس معيارًا فعليًا لتمثيل الوقت في الحوسبة. تم اعتمادها من قبل العديد من لغات البرمجة وقواعد البيانات والتطبيقات، مما جعلها تمتد بعيدًا عن بيئة يونكس الأصلية.

تستخدم الأنظمة الحديثة بشكل متزايد أعدادًا صحيحة 64 بت للطوابع الزمنية، مما يوسع النطاق القابل للتمثيل إلى حوالي 292 مليار سنة في كلا الاتجاهين من epoch، مما يحل فعليًا مشكلة عام 2038. ومع ذلك، قد تظل الأنظمة والتطبيقات القديمة معرضة للخطر.

لقد ضمنت بساطة وفائدة الطابع الزمني لنظام يونكس استمراره في الصدارة على الرغم من تطوير تنسيقات تمثيل الوقت الأكثر تطورًا. لا يزال مفهومًا أساسيًا في الحوسبة، ويشكل أساسًا للعديد من بنيتنا التحتية الرقمية.

أمثلة على التعليمات البرمجية

إليك أمثلة على كيفية تحويل الطوابع الزمنية لنظام يونكس إلى تواريخ سهلة القراءة في لغات البرمجة المختلفة:

// تحويل الطابع الزمني في JavaScript
function convertUnixTimestamp(timestamp, use12Hour = false) {
  // إنشاء كائن Date جديد (تستخدم JavaScript المللي ثانية)
  const date = new Date(timestamp * 1000);
  
  // خيارات التنسيق
  const options = {
    year: 'numeric',
    month: 'long',
    day: 'numeric',
    weekday: 'long',
    hour: use12Hour ? 'numeric' : '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: use12Hour
  };
  
  // تحويل إلى سلسلة باستخدام تنسيق locale
  return date.toLocaleString(undefined, options);
}

// مثال على الاستخدام
const timestamp = 1609459200; // 1 يناير 2021 00:00:00 بتوقيت UTC
console.log(convertUnixTimestamp(timestamp, false)); // تنسيق 24 ساعة
console.log(convertUnixTimestamp(timestamp, true));  // تنسيق 12 ساعة
# تحويل الطابع الزمني في Python
import datetime

def convert_unix_timestamp(timestamp, use_12hour=False):
    # تحويل الطابع الزمني لنظام يونكس إلى كائن datetime
    date = datetime.datetime.fromtimestamp(timestamp)
    
    # تنسيق سلسلة التاريخ
    if use_12hour:
        format_string = "%A, %B %d, %Y %I:%M:%S %p"  # تنسيق 12 ساعة مع AM/PM
    else:
        format_string = "%A, %B %d, %Y %H:%M:%S"     # تنسيق 24 ساعة
    
    return date.strftime(format_string)

# مثال على الاستخدام
timestamp = 1609459200  # 1 يناير 2021 00:00:00 بتوقيت UTC
print(convert_unix_timestamp(timestamp, False))  # تنسيق 24 ساعة
print(convert_unix_timestamp(timestamp, True))   # تنسيق 12 ساعة
<?php
// تحويل الطابع الزمني في PHP
function convertUnixTimestamp($timestamp, $use12Hour = false) {
    // تنسيق السلسلة
    $formatString = $use12Hour 
        ? 'l, F j, Y g:i:s A'  // تنسيق 12 ساعة مع AM/PM
        : 'l, F j, Y H:i:s';   // تنسيق 24 ساعة
    
    // تحويل وتنسيق التاريخ
    return date($formatString, $timestamp);
}

// مثال على الاستخدام
$timestamp = 1609459200; // 1 يناير 2021 00:00:00 بتوقيت UTC
echo convertUnixTimestamp($timestamp, false) . "\n"; // تنسيق 24 ساعة
echo convertUnixTimestamp($timestamp, true) . "\n";  // تنسيق 12 ساعة
?>
// تحويل الطابع الزمني في Java
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class UnixTimestampConverter {
    public static String convertUnixTimestamp(long timestamp, boolean use12Hour) {
        // تحويل الطابع الزمني لنظام يونكس إلى Instant، ثم إلى LocalDateTime
        Instant instant = Instant.ofEpochSecond(timestamp);
        LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
        
        // إنشاء المنسق بناءً على التنسيق المطلوب
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
            use12Hour ? "EEEE, MMMM d, yyyy h:mm:ss a" : "EEEE, MMMM d, yyyy HH:mm:ss"
        );
        
        // تنسيق التاريخ
        return dateTime.format(formatter);
    }
    
    public static void main(String[] args) {
        long timestamp = 1609459200; // 1 يناير 2021 00:00:00 بتوقيت UTC
        System.out.println(convertUnixTimestamp(timestamp, false)); // تنسيق 24 ساعة
        System.out.println(convertUnixTimestamp(timestamp, true));  // تنسيق 12 ساعة
    }
}
// تحويل الطابع الزمني في C#
using System;

class UnixTimestampConverter
{
    public static string ConvertUnixTimestamp(long timestamp, bool use12Hour)
    {
        // تحويل الطابع الزمني لنظام يونكس إلى DateTime
        // الطابع الزمني لنظام يونكس هو ثوانٍ منذ 1970-01-01
        DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
        
        // تنسيق السلسلة بناءً على تفضيل 12 ساعة أو 24 ساعة
        string formatString = use12Hour 
            ? "dddd, MMMM d, yyyy h:mm:ss tt"  // تنسيق 12 ساعة مع AM/PM
            : "dddd, MMMM d, yyyy HH:mm:ss";   // تنسيق 24 ساعة
        
        // إرجاع سلسلة التاريخ المنسقة
        return dateTime.ToString(formatString);
    }
    
    static void Main()
    {
        long timestamp = 1609459200; // 1 يناير 2021 00:00:00 بتوقيت UTC
        Console.WriteLine(ConvertUnixTimestamp(timestamp, false)); // تنسيق 24 ساعة
        Console.WriteLine(ConvertUnixTimestamp(timestamp, true));  // تنسيق 12 ساعة
    }
}
# تحويل الطابع الزمني في Ruby
require 'time'

def convert_unix_timestamp(timestamp, use_12hour = false)
  # تحويل الطابع الزمني لنظام يونكس إلى كائن Time
  time = Time.at(timestamp)
  
  # التنسيق بناءً على تفضيل 12 ساعة أو 24 ساعة
  if use_12hour
    time.strftime("%A, %B %d, %Y %I:%M:%S %p")  # تنسيق 12 ساعة مع AM/PM
  else
    time.strftime("%A, %B %d, %Y %H:%M:%S")     # تنسيق 24 ساعة
  end
end

# مثال على الاستخدام
timestamp = 1609459200  # 1 يناير 2021 00:00:00 بتوقيت UTC
puts convert_unix_timestamp(timestamp, false)  # تنسيق 24 ساعة
puts convert_unix_timestamp(timestamp, true)   # تنسيق 12 ساعة
// تحويل الطابع الزمني في Go
package main

import (
    "fmt"
    "time"
)

func convertUnixTimestamp(timestamp int64, use12Hour bool) string {
    // تحويل الطابع الزمني لنظام يونكس إلى Time
    t := time.Unix(timestamp, 0)
    
    // تنسيق السلسلة بناءً على تفضيل 12 ساعة أو 24 ساعة
    formatString := "Monday, January 2, 2006 "
    if use12Hour {
        formatString += "3:04:05 PM"  // تنسيق 12 ساعة مع AM/PM
    } else {
        formatString += "15:04:05"    // تنسيق 24 ساعة
    }
    
    // إرجاع الوقت المنسق
    return t.Format(formatString)
}

func main() {
    timestamp := int64(1609459200) // 1 يناير 2021 00:00:00 بتوقيت UTC
    fmt.Println(convertUnixTimestamp(timestamp, false)) // تنسيق 24 ساعة
    fmt.Println(convertUnixTimestamp(timestamp, true))  // تنسيق 12 ساعة
}
// تحويل الطابع الزمني في Swift
import Foundation

func convertUnixTimestamp(_ timestamp: Int, use12Hour: Bool) -> String {
    // إنشاء Date من الطابع الزمني لنظام يونكس
    let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
    
    // إنشاء DateFormatter
    let formatter = DateFormatter()
    formatter.dateStyle = .full
    
    // تعيين نمط الوقت بناءً على تفضيل 12 ساعة أو 24 ساعة
    if use12Hour {
        formatter.timeStyle = .medium
        formatter.amSymbol = "AM"
        formatter.pmSymbol = "PM"
    } else {
        formatter.timeStyle = .medium
        formatter.dateFormat = formatter.dateFormat?.replacingOccurrences(of: "h:mm:ss a", with: "HH:mm:ss")
    }
    
    // إرجاع التاريخ المنسق
    return formatter.string(from: date)
}

// مثال على الاستخدام
let timestamp = 1609459200 // 1 يناير 2021 00:00:00 بتوقيت UTC
print(convertUnixTimestamp(timestamp, use12Hour: false)) // تنسيق 24 ساعة
print(convertUnixTimestamp(timestamp, use12Hour: true))  // تنسيق 12 ساعة
# تحويل الطابع الزمني في R
convert_unix_timestamp <- function(timestamp, use_12hour = FALSE) {
  # تحويل الطابع الزمني لنظام يونكس إلى datetime POSIXct
  date_time <- as.POSIXct(timestamp, origin = "1970-01-01", tz = "UTC")
  
  # التنسيق بناءً على تفضيل 12 ساعة أو 24 ساعة
  if (use_12hour) {
    format_string <- "%A, %B %d, %Y %I:%M:%S %p"  # تنسيق 12 ساعة مع AM/PM
  } else {
    format_string <- "%A, %B %d, %Y %H:%M:%S"     # تنسيق 24 ساعة
  }
  
  # إرجاع سلسلة التاريخ المنسقة
  format(date_time, format_string)
}

# مثال على الاستخدام
timestamp <- 1609459200  # 1 يناير 2021 00:00:00 بتوقيت UTC
cat(convert_unix_timestamp(timestamp, FALSE), "\n")  # تنسيق 24 ساعة
cat(convert_unix_timestamp(timestamp, TRUE), "\n")   # تنسيق 12 ساعة
% تحويل الطابع الزمني في MATLAB
function formattedDate = convertUnixTimestamp(timestamp, use12Hour)
    % تحويل الطابع الزمني لنظام يونكس إلى datetime MATLAB
    % تواريخ MATLAB هي أيام منذ 1900-01-01، حيث 1 = 1900-01-01
    % الطابع الزمني لنظام يونكس هو ثوانٍ منذ 1970-01-01
    
    % أولاً تحويل إلى تنسيق التاريخ في MATLAB
    % 25569 هو عدد الأيام بين 1900-01-01 و1970-01-01
    excelDate = (timestamp / 86400) + 25569;
    
    % تنسيق التاريخ بناءً على تفضيل 12 ساعة أو 24 ساعة
    if use12Hour
        formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy h:mm:ss AM/PM');
    else
        formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy HH:mm:ss');
    end
end

% مثال على الاستخدام
timestamp = 1609459200;  % 1 يناير 2021 00:00:00 بتوقيت UTC
disp(convertUnixTimestamp(timestamp, false))  % تنسيق 24 ساعة
disp(convertUnixTimestamp(timestamp, true))   % تنسيق 12 ساعة
' تحويل الطابع الزمني في Excel VBA
Function ConvertUnixTimestamp(timestamp As Long, Optional use12Hour As Boolean = False) As String
    ' تحويل الطابع الزمني لنظام يونكس إلى تاريخ/وقت Excel
    ' تواريخ Excel هي أيام منذ 1900-01-01، حيث 1 = 1900-01-01
    ' الطابع الزمني لنظام يونكس هو ثوانٍ منذ 1970-01-01
    
    ' أولاً تحويل إلى تنسيق تاريخ Excel
    ' 25569 هو عدد الأيام بين 1900-01-01 و1970-01-01
    Dim excelDate As Double
    excelDate = (timestamp / 86400) + 25569
    
    ' تنسيق التاريخ بناءً على تفضيل 12 ساعة أو 24 ساعة
    If use12Hour Then
        ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy h:mm:ss AM/PM")
    Else
        ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy hh:mm:ss")
    End If
End Function

' الاستخدام في ورقة العمل:
' =ConvertUnixTimestamp(1609459200, TRUE)  ' تنسيق 12 ساعة
' =ConvertUnixTimestamp(1609459200, FALSE) ' تنسيق 24 ساعة

معالجة الحالات الحدية

عند العمل مع الطوابع الزمنية لنظام يونكس، من المهم معالجة الحالات الحدية بشكل صحيح. إليك أمثلة على معالجة بعض الحالات الحدية الشائعة:

// معالجة الحالات الحدية في JavaScript
function safeConvertTimestamp(timestamp, use12Hour = false) {
  // التحقق مما إذا كان الطابع الزمني صالحًا
  if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
    return "طابع زمني غير صالح";
  }
  
  // التحقق من الطوابع الزمنية السلبية (التواريخ قبل 1970)
  if (timestamp < 0) {
    // قد لا تتعامل بعض المتصفحات مع الطوابع الزمنية السلبية بشكل صحيح
    // استخدم نهجًا أكثر قوة للتواريخ قبل 1970
    const date = new Date(timestamp * 1000);
    if (isNaN(date.getTime())) {
      return "تاريخ غير صالح (قبل 1970)";
    }
  }
  
  // التحقق من مشكلة Y2K38 (بالنسبة للأنظمة 32 بت)
  const maxInt32 = 2147483647; // القيمة القصوى للعدد الصحيح الموقّع 32 بت
  if (timestamp > maxInt32) {
    // اعتبر استخدام BigInt للطوابع الزمنية الكبيرة جدًا في JavaScript الحديثة
    console.warn("يتجاوز الطابع الزمني حد العدد الصحيح 32 بت (مشكلة Y2K38)");
  }
  
  // تابع مع التحويل العادي
  try {
    const date = new Date(timestamp * 1000);
    const options = {
      year: 'numeric',
      month: 'long',
      day: 'numeric',
      weekday: 'long',
      hour: use12Hour ? 'numeric' : '2-digit',
      minute: '2-digit',
      second: '2-digit',
      hour12: use12Hour
    };
    return date.toLocaleString(undefined, options);
  } catch (error) {
    return "خطأ في تحويل الطابع الزمني: " + error.message;
  }
}

المراجع

  1. "وقت يونكس." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Unix_time

  2. "مشكلة عام 2038." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Year_2038_problem

  3. أولسون، آرثر ديفيد. "تعقيدات الوقت التقويمي." مجموعة Open، https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf

  4. "ISO 8601." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/ISO_8601

  5. "RFC 3339: التاريخ والوقت على الإنترنت: الطوابع الزمنية." مجموعة هندسة الإنترنت (IETF)، https://tools.ietf.org/html/rfc3339

  6. كيرنيغان، بريان و.، ودينيس م. ريتشي. "لغة البرمجة C." برنتيس هول، 1988.

Feedback