Wer ein Datum vor dem 1.1.1970 in eine Datumsfeld innerhalb von TYPO3 eingeben möchte stösst auf Schwierigkeiten:

Ein Datum wird in TYPO3 als UNIX-Timestamp abgelegt, d.h. es wird die Differnez in Sekunden zu 0:00 Uhr am 1.1.1970 abgelegt. Daraus folgt für ein Datum vor dem 1.1.1970 muss ein negativer Wert abgelegt werden. Nun war das Speicherfeld in bestimmten Bereichen vorzeichenlos und einige Funktionen rechnen immer noch vorzeichenlos (zb. Javascript unter Windows und auch einige mySQL-Funktionen).

Auch TYPO3 Javascript-Hilfsfunktionen rund um die Eingabe schneiden Datumsangaben vor 1970 ab.

 

Allerdings gibt es die Möglichkeit das auf eigenes Risiko !!! zu erweitern:

 

Dazu suche man in der Datei t3lib/jsfunc.evalfield.js nach folgenden Zeilen:

(je nach Version können die Zeilennummern etwas variieren)

 

234 function evalFunc_input(type,inVal)	{
 :
258	switch (type)	{
 :
318		case "date":
319			switch (theCmd)	{
 :
335				default:
 :
348					var year = (values.values[3])?this.parseInt(values.values[3]):this.getYear(today);
349						if (  (year>=0&&year<38) || (year>=70&&year<100) || (year>=1970&&year<2038)	)	{
350							if (year<100)	{
351								year = (year<38) ? year+=2000 : year+=1900;
352							}
353						} else {year = this.getYear(today);}
 :
367			this.lastDate+=add*24*60*60;
368			if (this.lastDate<0) {this.lastDate=0;}
369			return this.lastDate;

 

 

dies ist zu Verändern in:

 

234 function evalFunc_input(type,inVal)	{
 :
258	switch (type)	{
 :
318		case "date":
319			switch (theCmd)	{
 :
335				default:
 :
348					var year = (values.values[3])?this.parseInt(values.values[3]):this.getYear(today);
349						if (  (year >= 0 && year < 38) || (year >= 02 && year < 100) || (year >= 1902 && year < 2038)  )  {
350							if (year<100)	{
351								year = (year<38) ? year+=2000 : year+=1900;
352							}
353						} else {year = this.getYear(today);}
 :
367			this.lastDate+=add*24*60*60;
368			//if (this.lastDate<0) {this.lastDate=0;}
369			return this.lastDate;

 

 

mehr

 
Ihre aktuelle Seitenauswahl:  
>>>