mirror of
https://github.com/TiddlyWiki/TiddlyWiki5.git
synced 2026-05-05 12:57:34 +00:00
Revised test data
Testing against the output of cook.rb isn't satisfactory because of the bugs in it; instead we're now going to test against the tiddlywiki.com build products
This commit is contained in:
119
test/tiddlywiki.2.6.5/source/tiddlywiki/js/Dates.js
Executable file
119
test/tiddlywiki.2.6.5/source/tiddlywiki/js/Dates.js
Executable file
@@ -0,0 +1,119 @@
|
||||
//--
|
||||
//-- Augmented methods for the JavaScript Date() object
|
||||
//--
|
||||
|
||||
// Substitute date components into a string
|
||||
Date.prototype.formatString = function(template)
|
||||
{
|
||||
var t = template.replace(/0hh12/g,String.zeroPad(this.getHours12(),2));
|
||||
t = t.replace(/hh12/g,this.getHours12());
|
||||
t = t.replace(/0hh/g,String.zeroPad(this.getHours(),2));
|
||||
t = t.replace(/hh/g,this.getHours());
|
||||
t = t.replace(/mmm/g,config.messages.dates.shortMonths[this.getMonth()]);
|
||||
t = t.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));
|
||||
t = t.replace(/mm/g,this.getMinutes());
|
||||
t = t.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));
|
||||
t = t.replace(/ss/g,this.getSeconds());
|
||||
t = t.replace(/[ap]m/g,this.getAmPm().toLowerCase());
|
||||
t = t.replace(/[AP]M/g,this.getAmPm().toUpperCase());
|
||||
t = t.replace(/wYYYY/g,this.getYearForWeekNo());
|
||||
t = t.replace(/wYY/g,String.zeroPad(this.getYearForWeekNo()-2000,2));
|
||||
t = t.replace(/YYYY/g,this.getFullYear());
|
||||
t = t.replace(/YY/g,String.zeroPad(this.getFullYear()-2000,2));
|
||||
t = t.replace(/MMM/g,config.messages.dates.months[this.getMonth()]);
|
||||
t = t.replace(/0MM/g,String.zeroPad(this.getMonth()+1,2));
|
||||
t = t.replace(/MM/g,this.getMonth()+1);
|
||||
t = t.replace(/0WW/g,String.zeroPad(this.getWeek(),2));
|
||||
t = t.replace(/WW/g,this.getWeek());
|
||||
t = t.replace(/DDD/g,config.messages.dates.days[this.getDay()]);
|
||||
t = t.replace(/ddd/g,config.messages.dates.shortDays[this.getDay()]);
|
||||
t = t.replace(/0DD/g,String.zeroPad(this.getDate(),2));
|
||||
t = t.replace(/DDth/g,this.getDate()+this.daySuffix());
|
||||
t = t.replace(/DD/g,this.getDate());
|
||||
var tz = this.getTimezoneOffset();
|
||||
var atz = Math.abs(tz);
|
||||
t = t.replace(/TZD/g,(tz < 0 ? '+' : '-') + String.zeroPad(Math.floor(atz / 60),2) + ':' + String.zeroPad(atz % 60,2));
|
||||
t = t.replace(/\\/g,"");
|
||||
return t;
|
||||
};
|
||||
|
||||
Date.prototype.getWeek = function()
|
||||
{
|
||||
var dt = new Date(this.getTime());
|
||||
var d = dt.getDay();
|
||||
if(d==0) d=7;// JavaScript Sun=0, ISO Sun=7
|
||||
dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week to calculate weekNo
|
||||
var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1)+3600000)/86400000);
|
||||
return Math.floor(n/7)+1;
|
||||
};
|
||||
|
||||
Date.prototype.getYearForWeekNo = function()
|
||||
{
|
||||
var dt = new Date(this.getTime());
|
||||
var d = dt.getDay();
|
||||
if(d==0) d=7;// JavaScript Sun=0, ISO Sun=7
|
||||
dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week
|
||||
return dt.getFullYear();
|
||||
};
|
||||
|
||||
Date.prototype.getHours12 = function()
|
||||
{
|
||||
var h = this.getHours();
|
||||
return h > 12 ? h-12 : ( h > 0 ? h : 12 );
|
||||
};
|
||||
|
||||
Date.prototype.getAmPm = function()
|
||||
{
|
||||
return this.getHours() >= 12 ? config.messages.dates.pm : config.messages.dates.am;
|
||||
};
|
||||
|
||||
Date.prototype.daySuffix = function()
|
||||
{
|
||||
return config.messages.dates.daySuffixes[this.getDate()-1];
|
||||
};
|
||||
|
||||
// Convert a date to local YYYYMMDDHHMM string format
|
||||
Date.prototype.convertToLocalYYYYMMDDHHMM = function()
|
||||
{
|
||||
return this.getFullYear() + String.zeroPad(this.getMonth()+1,2) + String.zeroPad(this.getDate(),2) + String.zeroPad(this.getHours(),2) + String.zeroPad(this.getMinutes(),2);
|
||||
};
|
||||
|
||||
// Convert a date to UTC YYYYMMDDHHMM string format
|
||||
Date.prototype.convertToYYYYMMDDHHMM = function()
|
||||
{
|
||||
return this.getUTCFullYear() + String.zeroPad(this.getUTCMonth()+1,2) + String.zeroPad(this.getUTCDate(),2) + String.zeroPad(this.getUTCHours(),2) + String.zeroPad(this.getUTCMinutes(),2);
|
||||
};
|
||||
|
||||
// Convert a date to UTC YYYYMMDD.HHMMSSMMM string format
|
||||
Date.prototype.convertToYYYYMMDDHHMMSSMMM = function()
|
||||
{
|
||||
return this.getUTCFullYear() + String.zeroPad(this.getUTCMonth()+1,2) + String.zeroPad(this.getUTCDate(),2) + "." + String.zeroPad(this.getUTCHours(),2) + String.zeroPad(this.getUTCMinutes(),2) + String.zeroPad(this.getUTCSeconds(),2) + String.zeroPad(this.getUTCMilliseconds(),3) +"0";
|
||||
};
|
||||
|
||||
// Static method to create a date from a UTC YYYYMMDDHHMM format string
|
||||
Date.convertFromYYYYMMDDHHMM = function(d)
|
||||
{
|
||||
d = d?d.replace(/[^0-9]/g, ""):"";
|
||||
return Date.convertFromYYYYMMDDHHMMSSMMM(d.substr(0,12));
|
||||
};
|
||||
|
||||
// Static method to create a date from a UTC YYYYMMDDHHMMSS format string
|
||||
Date.convertFromYYYYMMDDHHMMSS = function(d)
|
||||
{
|
||||
d = d?d.replace(/[^0-9]/g, ""):"";
|
||||
return Date.convertFromYYYYMMDDHHMMSSMMM(d.substr(0,14));
|
||||
};
|
||||
|
||||
// Static method to create a date from a UTC YYYYMMDDHHMMSSMMM format string
|
||||
Date.convertFromYYYYMMDDHHMMSSMMM = function(d)
|
||||
{
|
||||
d = d ? d.replace(/[^0-9]/g, "") : "";
|
||||
return new Date(Date.UTC(parseInt(d.substr(0,4),10),
|
||||
parseInt(d.substr(4,2),10)-1,
|
||||
parseInt(d.substr(6,2),10),
|
||||
parseInt(d.substr(8,2)||"00",10),
|
||||
parseInt(d.substr(10,2)||"00",10),
|
||||
parseInt(d.substr(12,2)||"00",10),
|
||||
parseInt(d.substr(14,3)||"000",10)));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user