📄 date-delay.js.svn-base
字号:
function GetUTCDateFrom(aDate) { var t = GetTimeFrom(aDate); if ($isNaN(t)) return t; return DateFromTime(t);};%FunctionSetPrototype($Date, new $Date($NaN));var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];function TwoDigitString(value) { return value < 10 ? "0" + value : "" + value;};function DateString(time) { var YMD = FromJulianDay(Day(time) + kDayZeroInJulianDay); return WeekDays[WeekDay(time)] + ' ' + Months[YMD.month] + ' ' + TwoDigitString(YMD.date) + ' ' + YMD.year;};function TimeString(time) { return TwoDigitString(HourFromTime(time)) + ':' + TwoDigitString(MinFromTime(time)) + ':' + TwoDigitString(SecFromTime(time));};function LocalTimezoneString(time) { var timezoneOffset = (LocalTimeOffset() + DaylightSavingsOffset(time)) / msPerMinute; var sign = (timezoneOffset >= 0) ? 1 : -1; var hours = $floor((sign * timezoneOffset)/60); var min = $floor((sign * timezoneOffset)%60); var gmt = ' GMT' + ((sign == 1) ? '+' : '-') + TwoDigitString(hours) + TwoDigitString(min); return gmt + ' (' + LocalTimezone(time) + ')';};function DatePrintString(time) { return DateString(time) + ' ' + TimeString(time);};// -------------------------------------------------------------------// ECMA 262 - 15.9.4.2function DateParse(string) { var arr = %DateParseString(ToString(string)); if (IS_NULL(arr)) return $NaN; var day = MakeDay(arr[0], arr[1], arr[2]); var time = MakeTime(arr[3], arr[4], arr[5], 0); var date = MakeDate(day, time); if (IS_NULL(arr[6])) { return TimeClip(UTC(date)); } else { return TimeClip(date - arr[6] * 1000); }};// ECMA 262 - 15.9.4.3function DateUTC(year, month, date, hours, minutes, seconds, ms) { year = ToNumber(year); month = ToNumber(month); var argc = %_ArgumentsLength(); date = argc > 2 ? ToNumber(date) : 1; hours = argc > 3 ? ToNumber(hours) : 0; minutes = argc > 4 ? ToNumber(minutes) : 0; seconds = argc > 5 ? ToNumber(seconds) : 0; ms = argc > 6 ? ToNumber(ms) : 0; year = (!$isNaN(year) && 0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; var day = MakeDay(year, month, date); var time = MakeTime(hours, minutes, seconds, ms); return %_SetValueOf(this, TimeClip(MakeDate(day, time)));};// Mozilla-specific extension. Returns the number of milliseconds// elapsed since 1 January 1970 00:00:00 UTC.function DateNow() { return %DateCurrentTime();};// ECMA 262 - 15.9.5.2function DateToString() { var t = GetTimeFrom(this); if ($isNaN(t)) return kInvalidDate; return DatePrintString(LocalTime(t)) + LocalTimezoneString(t);};// ECMA 262 - 15.9.5.3function DateToDateString() { var t = GetTimeFrom(this); if ($isNaN(t)) return kInvalidDate; return DateString(LocalTime(t));};// ECMA 262 - 15.9.5.4function DateToTimeString() { var t = GetTimeFrom(this); if ($isNaN(t)) return kInvalidDate; var lt = LocalTime(t); return TimeString(lt) + LocalTimezoneString(lt);};// ECMA 262 - 15.9.5.7function DateToLocaleTimeString() { var t = GetTimeFrom(this); if ($isNaN(t)) return kInvalidDate; var lt = LocalTime(t); return TimeString(lt);};// ECMA 262 - 15.9.5.9function DateGetTime() { return GetTimeFrom(this);}// ECMA 262 - 15.9.5.10function DateGetFullYear() { return GetFullYearFrom(this)};// ECMA 262 - 15.9.5.11function DateGetUTCFullYear() { return GetUTCFullYearFrom(this)};// ECMA 262 - 15.9.5.12function DateGetMonth() { return GetMonthFrom(this);};// ECMA 262 - 15.9.5.13function DateGetUTCMonth() { return GetUTCMonthFrom(this);};// ECMA 262 - 15.9.5.14function DateGetDate() { return GetDateFrom(this);};// ECMA 262 - 15.9.5.15function DateGetUTCDate() { return GetUTCDateFrom(this);};// ECMA 262 - 15.9.5.16function DateGetDay() { var t = GetTimeFrom(this); if ($isNaN(t)) return t; return WeekDay(LocalTime(t));};// ECMA 262 - 15.9.5.17function DateGetUTCDay() { var t = GetTimeFrom(this); if ($isNaN(t)) return t; return WeekDay(t);};// ECMA 262 - 15.9.5.18function DateGetHours() { return GetHoursFrom(this);};// ECMA 262 - 15.9.5.19function DateGetUTCHours() { return GetUTCHoursFrom(this);};// ECMA 262 - 15.9.5.20function DateGetMinutes() { return GetMinutesFrom(this);};// ECMA 262 - 15.9.5.21function DateGetUTCMinutes() { return GetUTCMinutesFrom(this);};// ECMA 262 - 15.9.5.22function DateGetSeconds() { return GetSecondsFrom(this);};// ECMA 262 - 15.9.5.23function DateGetUTCSeconds() { return GetUTCSecondsFrom(this);};// ECMA 262 - 15.9.5.24function DateGetMilliseconds() { return GetMillisecondsFrom(this);};// ECMA 262 - 15.9.5.25function DateGetUTCMilliseconds() { return GetUTCMillisecondsFrom(this);};// ECMA 262 - 15.9.5.26function DateGetTimezoneOffset() { var t = GetTimeFrom(this); if ($isNaN(t)) return t; return (t - LocalTime(t)) / msPerMinute;};// ECMA 262 - 15.9.5.27function DateSetTime(ms) { if (!IS_DATE(this)) throw new $TypeError('this is not a Date object.'); return %_SetValueOf(this, TimeClip(ToNumber(ms)));};// ECMA 262 - 15.9.5.28function DateSetMilliseconds(ms) { var t = LocalTime(GetTimeFrom(this)); ms = ToNumber(ms); var time = MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms); return %_SetValueOf(this, TimeClip(UTC(MakeDate(Day(t), time))));};// ECMA 262 - 15.9.5.29function DateSetUTCMilliseconds(ms) { var t = GetTimeFrom(this); ms = ToNumber(ms); var time = MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms); return %_SetValueOf(this, TimeClip(MakeDate(Day(t), time)));};// ECMA 262 - 15.9.5.30function DateSetSeconds(sec, ms) { var t = LocalTime(GetTimeFrom(this)); sec = ToNumber(sec); ms = %_ArgumentsLength() < 2 ? GetMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(HourFromTime(t), MinFromTime(t), sec, ms); return %_SetValueOf(this, TimeClip(UTC(MakeDate(Day(t), time))));};// ECMA 262 - 15.9.5.31function DateSetUTCSeconds(sec, ms) { var t = GetTimeFrom(this); sec = ToNumber(sec); ms = %_ArgumentsLength() < 2 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(HourFromTime(t), MinFromTime(t), sec, ms); return %_SetValueOf(this, TimeClip(MakeDate(Day(t), time)));};// ECMA 262 - 15.9.5.33function DateSetMinutes(min, sec, ms) { var t = LocalTime(GetTimeFrom(this)); min = ToNumber(min); var argc = %_ArgumentsLength(); sec = argc < 2 ? GetSecondsFrom(this) : ToNumber(sec); ms = argc < 3 ? GetMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(HourFromTime(t), min, sec, ms); return %_SetValueOf(this, TimeClip(UTC(MakeDate(Day(t), time))));};// ECMA 262 - 15.9.5.34function DateSetUTCMinutes(min, sec, ms) { var t = GetTimeFrom(this); min = ToNumber(min); var argc = %_ArgumentsLength(); sec = argc < 2 ? GetUTCSecondsFrom(this) : ToNumber(sec); ms = argc < 3 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(HourFromTime(t), min, sec, ms); return %_SetValueOf(this, TimeClip(MakeDate(Day(t), time)));};// ECMA 262 - 15.9.5.35function DateSetHours(hour, min, sec, ms) { var t = LocalTime(GetTimeFrom(this)); hour = ToNumber(hour); var argc = %_ArgumentsLength(); min = argc < 2 ? GetMinutesFrom(this) : ToNumber(min); sec = argc < 3 ? GetSecondsFrom(this) : ToNumber(sec); ms = argc < 4 ? GetMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(hour, min, sec, ms); return %_SetValueOf(this, TimeClip(UTC(MakeDate(Day(t), time))));};// ECMA 262 - 15.9.5.34function DateSetUTCHours(hour, min, sec, ms) { var t = GetTimeFrom(this); hour = ToNumber(hour); var argc = %_ArgumentsLength(); min = argc < 2 ? GetUTCMinutesFrom(this) : ToNumber(min); sec = argc < 3 ? GetUTCSecondsFrom(this) : ToNumber(sec); ms = argc < 4 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); var time = MakeTime(hour, min, sec, ms); return %_SetValueOf(this, TimeClip(MakeDate(Day(t), time)));};// ECMA 262 - 15.9.5.36function DateSetDate(date) { var t = LocalTime(GetTimeFrom(this)); date = ToNumber(date); var day = MakeDay(YearFromTime(t), MonthFromTime(t), date); return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));};// ECMA 262 - 15.9.5.37function DateSetUTCDate(date) { var t = GetTimeFrom(this); date = ToNumber(date); var day = MakeDay(YearFromTime(t), MonthFromTime(t), date); return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));};// ECMA 262 - 15.9.5.38function DateSetMonth(month, date) { var t = LocalTime(GetTimeFrom(this)); month = ToNumber(month); date = %_ArgumentsLength() < 2 ? GetDateFrom(this) : ToNumber(date); var day = MakeDay(YearFromTime(t), month, date); return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));};// ECMA 262 - 15.9.5.39function DateSetUTCMonth(month, date) { var t = GetTimeFrom(this); month = ToNumber(month); date = %_ArgumentsLength() < 2 ? GetUTCDateFrom(this) : ToNumber(date); var day = MakeDay(YearFromTime(t), month, date); return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));};// ECMA 262 - 15.9.5.40function DateSetFullYear(year, month, date) { var t = GetTimeFrom(this); t = $isNaN(t) ? 0 : LocalTime(t); year = ToNumber(year); var argc = %_ArgumentsLength(); month = argc < 2 ? MonthFromTime(t) : ToNumber(month); date = argc < 3 ? DateFromTime(t) : ToNumber(date); var day = MakeDay(year, month, date); return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));};// ECMA 262 - 15.9.5.41function DateSetUTCFullYear(year, month, date) { var t = GetTimeFrom(this); if ($isNaN(t)) t = 0; var argc = %_ArgumentsLength(); year = ToNumber(year); month = argc < 2 ? MonthFromTime(t) : ToNumber(month); date = argc < 3 ? DateFromTime(t) : ToNumber(date); var day = MakeDay(year, month, date); return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));};// ECMA 262 - 15.9.5.42function DateToUTCString() { var t = GetTimeFrom(this); if ($isNaN(t)) return kInvalidDate; // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT return WeekDays[WeekDay(t)] + ', ' + TwoDigitString(DateFromTime(t)) + ' ' + Months[MonthFromTime(t)] + ' ' + YearFromTime(t) + ' ' + TimeString(t) + ' GMT';};// ECMA 262 - B.2.4function DateGetYear() { var t = GetTimeFrom(this); if ($isNaN(t)) return $NaN; return YearFromTime(LocalTime(t)) - 1900;};// ECMA 262 - B.2.5function DateSetYear(year) { var t = LocalTime(GetTimeFrom(this)); if ($isNaN(t)) t = 0; year = ToNumber(year); if ($isNaN(year)) return %_SetValueOf(this, $NaN); year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; var day = MakeDay(year, GetMonthFrom(this), GetDateFrom(this)); return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));};// -------------------------------------------------------------------function SetupDate() { // Setup non-enumerable properties of the Date object itself. InstallProperties($Date, DONT_ENUM, { UTC: DateUTC, parse: DateParse, now: DateNow }); // Setup non-enumerable properties of the Date prototype object. InstallProperties($Date.prototype, DONT_ENUM, { constructor: $Date, toString: DateToString, toDateString: DateToDateString, toTimeString: DateToTimeString, toLocaleString: DateToString, toLocaleDateString: DateToDateString, toLocaleTimeString: DateToLocaleTimeString, valueOf: DateGetTime, getTime: DateGetTime, getFullYear: DateGetFullYear, getUTCFullYear: DateGetUTCFullYear, getMonth: DateGetMonth, getUTCMonth: DateGetUTCMonth, getDate: DateGetDate, getUTCDate: DateGetUTCDate, getDay: DateGetDay, getUTCDay: DateGetUTCDay, getHours: DateGetHours, getUTCHours: DateGetUTCHours, getMinutes: DateGetMinutes, getUTCMinutes: DateGetUTCMinutes, getSeconds: DateGetSeconds, getUTCSeconds: DateGetUTCSeconds, getMilliseconds: DateGetMilliseconds, getUTCMilliseconds: DateGetUTCMilliseconds, getTimezoneOffset: DateGetTimezoneOffset, setTime: DateSetTime, setMilliseconds: DateSetMilliseconds, setUTCMilliseconds: DateSetUTCMilliseconds, setSeconds: DateSetSeconds, setUTCSeconds: DateSetUTCSeconds, setMinutes: DateSetMinutes, setUTCMinutes: DateSetUTCMinutes, setHours: DateSetHours, setUTCHours: DateSetUTCHours, setDate: DateSetDate, setUTCDate: DateSetUTCDate, setMonth: DateSetMonth, setUTCMonth: DateSetUTCMonth, setFullYear: DateSetFullYear, setUTCFullYear: DateSetUTCFullYear, toUTCString: DateToUTCString, toGMTString: DateToUTCString, getYear: DateGetYear, setYear: DateSetYear });};SetupDate();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -