Tương tự sau ngày cuối cùng của tháng, chúng ta phải để trống các ngày còn lại trong ma trận lịch. Đối với điều này, chúng tôi sẽ sử dụng hàm chuỗi str_repeat của php để nhân số lần các ô trống được quyết định bởi ngày bắt đầu của tháng và ngày kết thúc của tháng
I solved a problem with Julian dates that are used in the JD Edwards ERP package [running on AS/400]. The Julian format for this system is as follows: CYYDDD
Where C is 0 for 1900 and 1 for 2000
DDD is the day of the year count
I used the mktime built-in php function to convert dates to the normal DD/MM/YYYY format. This function will convert dates that are between 1970 and 2038 [limitation of unix timestamps and the mktime function]
The $jde_date var needs to be a 6 len STRING... if you use a numeric var type it will drop the leading 0 for any date that represents 1900... this will botch the substr functions and thus make the whole thing wrong.
function jde_date_conv[$jde_date]
{
$ct = substr[$jde_date,0,1];
$yr = substr[$jde_date,1,2];
$dy = substr[$jde_date,3,3];
if[$ct == 0] $yr_pfx = 19;
if[$ct == 1] $yr_pfx = 20;
$tlt_yr = $yr_pfx.$yr;
$base_time = mktime[0,0,0,1,0,$tlt_yr];
$unix_time = [$dy * 86400] + $base_time;
Where C is 0 for 1900 and 1 for 2000
0
DDD is the day of the year count
Trong bài viết này, tôi đã phát triển một lớp lịch sự kiện sẽ điền tất cả các ngày trong tháng dựa trên ngày đã chỉ định, cùng với các sự kiện mà chúng ta có thể thêm vào lịch
Mặc dù PHP không bao gồm API lịch tích hợp sẵn [không bao gồm các phần mở rộng bổ sung], tuy nhiên, nó cung cấp cho bạn một loạt các phương thức ngày và giờ mà chúng ta có thể sử dụng để thao tác. Ngoài ra, chúng ta có thể sử dụng các phương pháp này để điền vào các trang hiển thị ngày, tuần và tháng của một năm cụ thể
Tại sao tôi nên sử dụng lớp lịch?
Nó hoàn toàn tùy thuộc vào bạn và yêu cầu của bạn. Tôi đã quyết định tự mình viết lớp học của riêng mình khi tôi làm việc trong nhiều dự án yêu cầu hệ thống lịch dựa trên sự kiện. Tôi đã tìm kiếm vô số lần một thư viện tối thiểu, không phụ thuộc và hiện đại. Nhưng không thể tìm thấy một cái mà tôi có thể tích hợp liền mạch với các dự án của mình. Vì vậy, tôi đã tạo ra lớp PHP có thể dễ dàng tích hợp với bất kỳ dự án nào, cho dù quy mô của dự án lớn hay nhỏ.
Nguồn
Tạo một tệp mới Lịch. php và thêm đoạn mã sau
PHP
Thêm mã sau vào biểu định kiểu [CSS] của bạn hoặc tạo lịch tệp mới. css
CSS
.calendar {
display: flex;
flex-flow: column;
}
.calendar .header .month-year {
font-size: 20px;
font-weight: bold;
color: #636e73;
padding: 20px 0;
}
.calendar .days {
display: flex;
flex-flow: wrap;
}
.calendar .days .day_name {
width: calc[100% / 7];
border-right: 1px solid #2c7aca;
padding: 20px;
text-transform: uppercase;
font-size: 12px;
font-weight: bold;
color: #818589;
color: #fff;
background-color: #448cd6;
}
.calendar .days .day_name:nth-child[7] {
border: none;
}
.calendar .days .day_num {
display: flex;
flex-flow: column;
width: calc[100% / 7];
border-right: 1px solid #e6e9ea;
border-bottom: 1px solid #e6e9ea;
padding: 15px;
font-weight: bold;
color: #7c878d;
cursor: pointer;
min-height: 100px;
}
.calendar .days .day_num span {
display: inline-flex;
width: 30px;
font-size: 14px;
}
.calendar .days .day_num .event {
margin-top: 10px;
font-weight: 500;
font-size: 14px;
padding: 3px 6px;
border-radius: 4px;
background-color: #f7c30d;
color: #fff;
word-wrap: break-word;
}
.calendar .days .day_num .event.green {
background-color: #51ce57;
}
.calendar .days .day_num .event.blue {
background-color: #518fce;
}
.calendar .days .day_num .event.red {
background-color: #ce5151;
}
.calendar .days .day_num:nth-child[7n+1] {
border-left: 1px solid #e6e9ea;
}
.calendar .days .day_num:hover {
background-color: #fdfdfd;
}
.calendar .days .day_num.ignore {
background-color: #fdfdfd;
color: #ced2d4;
cursor: inherit;
}
.calendar .days .day_num.selected {
background-color: #f1f2f3;
cursor: inherit;
}
Cách sử dụng
Đưa lớp vào dự án của bạn và tạo một thể hiện mới
PHP
include 'Calendar.php';
$calendar = new Calendar[];
Chúng tôi có thể chỉ định một ngày trong khi tạo một phiên bản mới
PHP
include 'Calendar.php';
$calendar = new Calendar['2021-02-26'];
Thêm sự kiện mới vào lịch
PHP
$calendar->add_event['Holiday', '2021-02-14'];
Chúng ta có thể chỉ định số ngày sự kiện sẽ kéo dài bằng cách ràng buộc một giá trị bổ sung cho phương thức add_event
PHP
$calendar->add_event['Holiday', '2021-02-14', 7]; // Event will last for 7 days
Chúng ta cũng có thể thay đổi màu sắc
PHP
________số 8_______Chỉ có màu đỏ, xanh dương và xanh lá cây [mặc định là màu cam]. Bạn có thể thêm nhiều màu hơn vào tệp CSS
Chúng tôi có thể điền lịch ở định dạng HTML bằng đoạn mã sau
PHP
echo $calendar;
Mã ví dụ
Tạo một ví dụ tập tin mới. php và thêm đoạn mã sau
PHP
Event Calendar
Event Calendar
Biểu định kiểu [kiểu. css] cho trang ví dụ của chúng tôi
CSS
* {
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
font-size: 16px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
background-color: #FFFFFF;
margin: 0;
}
.navtop {
background-color: #3b4656;
height: 60px;
width: 100%;
border: 0;
}
.navtop div {
display: flex;
margin: 0 auto;
width: 800px;
height: 100%;
}
.navtop div h1, .navtop div a {
display: inline-flex;
align-items: center;
}
.navtop div h1 {
flex: 1;
font-size: 24px;
padding: 0;
margin: 0;
color: #ebedee;
font-weight: normal;
}
.navtop div a {
padding: 0 20px;
text-decoration: none;
color: #c4c8cc;
font-weight: bold;
}
.navtop div a i {
padding: 2px 8px 0 0;
}
.navtop div a:hover {
color: #ebedee;
}
.content {
width: 800px;
margin: 0 auto;
}
.content h2 {
margin: 0;
padding: 25px 0;
font-size: 22px;
border-bottom: 1px solid #ebebeb;
color: #666666;
}
Và bây giờ nếu chúng ta điều hướng đến trang ví dụ của mình, nó sẽ xuất hiện như sau
http. // localhost/phpcalendar/ví dụ. php
Làm
- Thêm nhiều phương thức vào lớp. loại bỏ các sự kiện, vv
- Xuất sang các định dạng khác nhau
- Gói nâng cao sẽ bao gồm AJAX, MySQL, v.v.
Phần kết luận
Mặc dù lớp lịch mà tôi đã tạo không phải là một giải pháp hoàn chỉnh, nhưng nó chắc chắn sẽ giúp bạn tích hợp lớp này vào bất kỳ dự án nào một cách liền mạch và mở rộng mã cơ sở
Hãy để lại bình luận bên dưới và cho tôi biết nếu bạn gặp phải bất kỳ vấn đề nào với lớp học. Đừng quên theo dõi chúng tôi trên mạng xã hội và chia sẻ các bài viết của chúng tôi vì điều này sẽ giúp trang web của chúng tôi phát triển và chúng tôi có thể cung cấp nhiều nội dung chất lượng hơn
Phát hành theo Giấy phép MIT
Nếu bạn muốn hỗ trợ chúng tôi, hãy cân nhắc mua hệ thống lịch sự kiện nâng cao bên dưới vì nó sẽ giúp chúng tôi tạo thêm nhiều hướng dẫn hơn và duy trì hoạt động của trang web. Gói nâng cao bao gồm mã cải tiến và nhiều tính năng hơn
Nâng cao
$ 20. 00
xem thêm chi tiếtMã nguồn
Tệp SQL cơ sở dữ liệu
Hệ thống lịch sự kiện an toàn
Thêm, Chỉnh sửa & Xóa Sự kiện
Tính năng Lịch nhỏ
Tính năng mô tả sự kiện
Tính năng chỉ báo AJAX [bộ tải vòng tròn]
Tính năng phương thức JavaScript
lớp JavaScript
Tích hợp MySQL
Tích hợp AJAX
Tệp SCSS
bảng quản trị
Tính năng quản lý sự kiện
Mã nhận xét
Cập nhật và hỗ trợ miễn phí [các vấn đề nhỏ]
Hướng dẫn sử dụng
Thêm. Mã nguồn hướng dẫn
PayPal Tải xuống Crypto Tải xuống
Giảm giá
Gói [Tiết kiệm 53%]
$ 119. 00
255. 00
Hệ thống đăng nhập và đăng ký an toàn
Hệ thống giỏ hàng
Ứng dụng CRUD
Hệ thống bán vé
Hệ thống thư viện
Hệ thống lịch sự kiện
Hệ thống thăm dò ý kiến và bỏ phiếu
Hệ thống bình luận
Đánh giá hệ thống
Mâu liên hệ
Hệ thống trò chuyện hỗ trợ trực tiếp
Bản tin & Hệ thống gửi thư
Truy cập vào các tập lệnh trong tương lai
PayPal Tải xuống Crypto Tải xuống
về tác giả
David Adams
Nhà phát triển trang web nhiệt tình, tôi đã thiết kế và phát triển các ứng dụng web trong hơn 10 năm, tôi tận hưởng sự sáng tạo mà tôi đưa vào các dự án của mình và tận hưởng những gì người khác mang đến cho trang web tuyệt vời. Mục tiêu của tôi là giúp những người mới tìm hiểu cách sử dụng web