ایلیا فرامرزپور
4 سال پیش توسط ایلیا فرامرزپور مطرح شد
3 پاسخ

تاریخ قمری - رویداد های روز ملی : ایران

سلام دوستان در پروژه نیاز به تاریخ قمری دارم.

البته نیاز به رویداد های روز مثل : نوروز - روز ملی شدن نفت و .... رو Api رو میشناسید که محدودیت نداشته باشه ؟ و داخلی باشه

ممنون میشم دوستانی که اطلاع دارن کمک کنند.

@hesammousavi


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@iliafaramarzpour
سلام.
پکیج زیر رو بررسی کنید.
https://github.com/jalaali/jalaali-js


ایلیا فرامرزپور
تخصص : FullStack Developer
@iliafaramarzpour 4 سال پیش مطرح شد
1

سلام دوست عزیز این تاریخ به صورت جلالی یا همون شمسی هست و فکر کنم میلادی هم تبدیل میکنه ولی من نیاز به قمری دارم مثال :
الأربعاء‬ ، ۱۴ شعبان ۱۴۴۱ ۱۴ - ۸ - ۱۴۴۱

@mohsenbostan


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش آپدیت شد
0

سلام دوست عزیز، من چند وقت پیش گیر این موضوع بودم و این کارو کردم شاید به دردتون بخوره

// مناسبت های سال جاری
    public function vacations() {
//      Cache::forget( 'vacations' );
        $data = \Illuminate\Support\Facades\Cache::remember( 'vacations' , \Carbon\Carbon::now()->addDay() , function () {
            $crawler   = new Crawler( file_get_contents( 'https://www.time.ir/fa/eventyear-%d8%aa%d9%82%d9%88%db%8c%d9%85-%d8%b3%d8%a7%d9%84%db%8c%d8%a7%d9%86%d9%87' ) );
            $year      = $crawler->filter( '#ctl00_cphTop_Sampa_Web_View_EventUI_EventYearCalendar10cphTop_3417_txtYear' )->attr( 'value' );
            $vacations = $crawler->filter( '.eventsCurrentMonthWrapper' )->each( function ( Crawler $node , $i ) use ( $year ) {
                $ul       = $node->filter( 'ul' );
                $days     = $ul->filter( 'li' )->each( function ( Crawler $node , $i ) {
                    return $node->filter( 'span' )->eq( 0 )->text();
                } );
                $holidays = $ul->filter( 'li' )->each( function ( Crawler $node , $i ) {
                    return $node->attr( 'class' ) == 'eventHoliday' ? true : false;
                } );
                $reasons  = $ul->filter( 'li' )->each( function ( Crawler $node , $i ) {
                    if ( $node->filter( 'span' )->eq( 1 )->text() ) {
                        return str_replace( $node->filter( 'span' )->eq( 1 )->text() , '' , str_replace( $node->filter( 'span' )->text() , '' , $node->text() ) );
                    } else {
                        return str_replace( $node->filter( 'span' )->text() , '' , $node->text() );
                    }
                } );
                $data     = [];
                foreach ( $days as $key => $day ) {
                    $date = $year . '/' . ( new Helper() )->day_date( $day );
                    if ( $index = array_search( $date , array_column( $data , 'date' ) ) ) {
                        $data[ $index ] = [
                            'date'    => $date ,
                            'holiday' => ( $data[ $index ][ 'holiday' ] || $holidays[ $key ] ) ,
                            'reason'  => $data[ $index ][ 'reason' ] . ' # ' . $reasons[ $key ]
                        ];
                    } else {
                        array_push( $data , [
                            'date'    => $date ,
                            'holiday' => $holidays[ $key ] ,
                            'reason'  => $reasons[ $key ]
                        ] );
                    }
                }

                return $data;
            } );

            return $vacations;
        } );

        return $data;
    }

    // تعطیلات سال جاری
    public function holidays() {
        return \Illuminate\Support\Facades\Cache::remember( 'holidays' , \Carbon\Carbon::now()->addDay() , function () {
            return array_values( array_filter( array_map( function ( $item ) {
                return array_values( array_filter( $item , function ( $value ) {
                    return $value[ 'holiday' ];
                } ) );
            } , $this->vacations() ) ) );
        } );
    }

از پکیج
"symfony/dom-crawler": "^5.0",
استفاده کردم و به خوبی جواب میده

از سایت time.ir اطلاعات استخراج میشه

نمونش رو بخوای توی این سایت استفاده کردم

https://doctorjaan.com/reserve/office/9


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام