سلام دوستان در پروژه نیاز به تاریخ قمری دارم.
البته نیاز به رویداد های روز مثل : نوروز - روز ملی شدن نفت و .... رو Api رو میشناسید که محدودیت نداشته باشه ؟ و داخلی باشه
ممنون میشم دوستانی که اطلاع دارن کمک کنند.
سلام دوست عزیز این تاریخ به صورت جلالی یا همون شمسی هست و فکر کنم میلادی هم تبدیل میکنه ولی من نیاز به قمری دارم مثال :
الأربعاء ، ۱۴ شعبان ۱۴۴۱ ۱۴ - ۸ - ۱۴۴۱
سلام دوست عزیز، من چند وقت پیش گیر این موضوع بودم و این کارو کردم شاید به دردتون بخوره
// مناسبت های سال جاری
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 اطلاعات استخراج میشه
نمونش رو بخوای توی این سایت استفاده کردم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟