Arabic StrToTime:

Parse about any Arabic textual datetime description into a Unix timestamp.

The function expects to be given a string containing an Arabic date format and will try to parse that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT), relative to the timestamp given in now, or the current time if none is supplied.


Example Output 1:

Monday 21st April 2025

الخميس القادم - 1745452800 - Thursday 24th April 2025

الأحد الماضي - 1745107200 - Sunday 20th April 2025

بعد أسبوع و ثلاثة أيام - 1746061574 - Thursday 01st May 2025

منذ تسعة أيام - 1744419974 - Saturday 12th April 2025

قبل إسبوعين - 1743987974 - Monday 07th April 2025

2 آب 1975 - 176169600 - Saturday 02nd August 1975

1 رمضان 1429 - 1220227200 - Monday 01st September 2008


Example Code 1:

<?php
    date_default_timezone_set('UTC');
    $time = time();

    echo date('l dS F Y', $time);
    echo '<br /><br />';

    $Arabic = new \ArPHP\I18N\Arabic();

    $str  = 'الخميس القادم';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";
    
    $str  = 'الأحد الماضي';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";
    
    $str  = 'بعد أسبوع و ثلاثة أيام';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";
    
    $str  = 'منذ تسعة أيام';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";
    
    $str  = 'قبل إسبوعين';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";
    
    $str  = '2 آب 1975';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";

    $str  = '1 رمضان 1429';
    $int  = $Arabic->strtotime($str, $time);
    $date = date('l dS F Y', $int);
    echo "$str - $int - $date<br /><br />";

Related Documentation: strtotime

Example Output 2:

بعد سنة واحدة و 7 أشهر

بعد سنة واحدة و 7 أشهر و إسبوعين

بعد سنة واحدة و 7 أشهر و 3 أسابيع

قبل سنة واحدة و 7 أشهر و إسبوعين و يوم واحد و 13 ساعة و 40 دقيقة و 48 ثانية


Example Code 2:

<?php
    date_default_timezone_set('UTC');
    
    $time  = time();
    $other = $time - 1.618 * 3600 * 24 * 365;

    $Arabic = new \ArPHP\I18N\Arabic();

    $str = $Arabic->diffForHumans($time, $other);
    echo "$str<br /><br />";

    $str = $Arabic->diffForHumans($time, $other, 3);
    echo "$str<br /><br />";

    $str = $Arabic->diffForHumans($time, $other, 3, false);
    echo "$str<br /><br />";

    $str = $Arabic->diffForHumans($other, $time, 7);
    echo "$str<br /><br />";

Related Documentation: diffForHumans