<?php
$file = fopen("admin/events/events.txt", "r");
while(!feof($file)){
$line = fgets($file);
$result=htmlentities($line);
$s = $result;
preg_match_all('/data-day=\'([^\']*)\'/', $s, $matches);
foreach($matches[1] as $idx => $datevalue)
{
$year = substr($datevalue, 0, 4);
$month = substr($datevalue, 4, 2);
$day = substr($datevalue, 6, 2);
}
$line = str_replace("<div data-role='day' data-day='$year$month$day", "<b><u>Datum:</b></u> $year-$month-$day ", $line);
$line = str_replace("'><div data-role='event' data-name='<h1>", " <br><b><u>Event:</b></u> ", $line);
$line = str_replace("' data-start='", " <br><b><u>Start:</b></u> ", $line);
$line = str_replace("' data-end='", " <br><b><u>Einde:</b></u> Tot ", $line);
$line = str_replace("' data-location='", " <br><b><u>Locatie:</b></u> ", $line);
$line = str_replace("</h1>", " <br><b><u>Inhoud event:</b></u><br> ", $line);
$line = str_replace("'></div></div>", "", $line);
echo "<div class='event'>$line</div>";
}
fclose($file);
?>
我使用此代碼讀出一個txt文件。然後顯示事件。現在將YYYYMMDD格式的日期轉換爲YYYY-MM-DD格式的代碼日期未正確轉換
$result=htmlentities($line);
$s = $result;
preg_match_all('/data-day=\'([^\']*)\'/', $s, $matches);
foreach($matches[1] as $idx => $datevalue)
{
$year = substr($datevalue, 0, 4);
$month = substr($datevalue, 4, 2);
$day = substr($datevalue, 6, 2);
}
。但有一個問題。對於像21031217或20141025這樣的日期,......或其他。日期轉換正確。但是有一些像201311這樣的日期,意味着2013年1月份的第一次,但該代碼轉換爲2013-11年 - 所以這不是很好:)。因此,1-9和1-9天是單個數字,當日期轉換爲其他格式時會產生問題。有人可以提供一個額外的代碼來識別和轉換正確嗎?
也許jQuery代碼可以調整?
我有一個jquery插件日曆,讀取certan日期事件。現在它被保存爲YYYYMMDD格式,現在所有的日期都可以正常工作,比如20131225,20141022等等......代碼的工作日期也很好201411,這是2014年1月2014年第一個2014年第6個月第11天。現在我想要日期如20140101和20140611等等。有人可以編輯此代碼。 THX
var yy;
var calendarArray =[];
var monthOffset = [6,7,8,9,10,11,0,1,2,3,4,5];
var monthArray = [["JAN","January"],["FEB","February"],["MAR","March"],["APR","April"],["MAY","May"],["JUN","June"],["JUL","July"],["AUG","August"],["SEP","September"],["OCT","October"],["NOV","November"],["DEC","December"]];
var dayArray = ["7","1","2","3","4","5","6"];
$(document).ready(function() {
$(document).on('click','.calendar-day.have-events',activateDay);
$(document).on('click','.specific-day',activatecalendar);
$(document).on('click','.calendar-month-view-arrow',offsetcalendar);
$(window).resize(calendarScale);
calendarSet();
calendarScale();
});
function calendarScale() {
$(".calendar").each(function() {
if($(this).width() < 400 && !$(this).hasClass('small')) {
$(this).addClass('small');
} else if($(this).width() > 400 && $(this).hasClass('small')) {
$(this).removeClass('small');
}
})
}
function offsetcalendar() {
var cm = parseInt($(".calendar").attr('offset'));
if($(this).data('dir') == "left") {
calendarSetMonth(cm-1);
} else if($(this).data('dir') == "right") {
calendarSetMonth(cm+1);
}
}
function orderBy(deli,array) {
var p = array.slice();
var o = p.length;
var y,t;
var temparray = [];
for(var u=0; u<o;u++) {
for(var uu=0;uu<p.length;uu++) {
if(uu==0) {
t = uu;
y = p[uu];
}
else if(parseInt(p[uu][deli].replace('.','')) < parseInt(y[deli].replace('.',''))) {
y = p[uu];
t = uu;
}
}
temparray.push(y);
p.splice(t,1);
}
return temparray;
}
function calendarSet() {
$(".calendar").append('<div class="calendar-month-view"><div class="calendar-month-view-arrow" data-dir="left">‹</div><p></p><div class="calendar-month-view-arrow" data-dir="right">›</div></div><div class="calendar-holder"><div class="calendar-grid"></div><div class="calendar-specific"><div class="specific-day"><div class="specific-day-info" i="day"></div><div class="specific-day-info" i="month"></div></div><div class="specific-day-scheme"></div></div></div>');
$(".calendar").each(function() {
if($(this).data("color") == undefined) {
$(this).data("color","red");
}
$(this).find('[data-role=day]').each(function() {
var tempdayarray = [];
$(this).find('[data-role=event]').each(function() {
var tempeventarray = [];
tempeventarray["name"] = $(this).data("name");
tempeventarray["start"] = $(this).data("start");
tempeventarray["end"] = $(this).data("end");
tempeventarray["location"] = $(this).data("location");
tempdayarray.push(tempeventarray);
});
calendarArray[$(this).data('day')] = tempdayarray;
});
});
$(".calendar [data-role=day]").remove();
calendarSetMonth();
}
function activateDay() {
$(this).parents('.calendar').addClass('spec-day');
var di = new Date(parseInt($(this).attr('time')));
var strtime = $(this).attr('strtime');
var d = new Object();
d.day = di.getDate();
d.month = di.getMonth();
d.events = calendarArray[strtime];
d.tocalendar = tocalendar;
d.tocalendar();
}
var tocalendar = function() {
$(".specific-day-info[i=day]").html(this.day);
$(".specific-day-info[i=month]").html(monthArray[this.month][0]);
if(this.events !== undefined) {
var ev = orderBy('start',this.events);
for(var o = 0; o<ev.length;o++) {
$(".specific-day-scheme").append('<div class="specific-day-scheme-event"><p>'+ev[o]['name']+'</p><p data-role="dur">'+ev[o]['start']+' - '+ev[o]['end']+'</p><p data-role="loc">'+ev[o]['location']+'</p></div>');
}
}
}
function activatecalendar() {
$(this).parents('.calendar').removeClass('spec-day');
$(".specific-day-scheme").html('');
}
function calendarSetMonth(offset) {
$(".calendar-grid").html('');
var d = new Date();
var c = new Date();
var e = new Date();
if(offset !== undefined) {
d.setMonth(d.getMonth()+offset);
e.setMonth(e.getMonth()+offset);
$(".calendar").attr('offset', offset);
} else {
$(".calendar").attr('offset', 0);
}
$(".calendar .calendar-month-view p").text(monthArray[d.getMonth()][1]+' '+d.getFullYear());
d.setDate(1);
if(dayArray[d.getDay()] == 1) {
d.setDate(d.getDate()-7);
} else {
d.setDate(d.getDate()-dayArray[d.getDay()]+1);
}
for(var i=0;i<42;i++) {
d.setDate(d.getDate()+i);
var cal_day = $('<div class="calendar-day"><div class="date-holder">'+d.getDate()+'</div></div>');
if(d.getMonth() !== e.getMonth()) {
cal_day.addClass('other-month');
}
if(d.getTime() == c.getTime()) {
cal_day.addClass('this-day');
}
var strtime = d.getFullYear()+''+(d.getMonth()+1)+''+d.getDate();
if(calendarArray[strtime] !== undefined) {
cal_day.addClass('have-events');
}
var cal_day_eventholder = $('<div class="event-notif-holder"></div>');
if(calendarArray[strtime] != undefined) {
for(var u=0;u<3 && u<calendarArray[strtime].length;u++) {
cal_day_eventholder.append('<div class="event-notif"></div>')
}
}
cal_day.attr('strtime',strtime);
cal_day.attr('time',d.getTime());
cal_day.prepend(cal_day_eventholder);
$(".calendar-grid").append(cal_day);
d.setDate(d.getDate()-i);
}
}
你最好做這樣的事情指望s根據結果進行格式化和格式化。 –
我不認爲這是一件容易的事。什麼是'2013111'?是「2013-11-01」還是「2013-01-11」? – bansi
idd,但我基於這種結構的整個jquery插件...我知道而不是日期01 02等等:)但現在太晚了:p – Johan