Если вы просто конвертируете текущее время в TimeStamp, вы можете напрямую использовать New Date (). GetTime ()/1000; Но если вы конвертируете определенное время или дату в UNIX TimeStamp, IE не поддерживает методы с такими параметрами, как новая дата («2013-1-1»), которая вернет NAN.
В связи с этим я написал следующие функции, которые поддерживают IE6+, Google, Firefox и другие браузеры:
Кода -копия выглядит следующим образом:
функция getTime (день) {
re = /(/d <d{4 ))(?:-(/d{1,2 ))(?:-(/d{1,2 )))?)?(?:/S+(/d{1,2 )):(/d{1,2 )):(/d{1,200)?/.exec(day);
вернуть новую дату (re [1], (re [2] || 1) -1, re [3] || 1, re [4] || 0, re [5] || 0, re [6] || 0) .getTime ()/1000;
}
//тест
оповещение (GetTime ("2013-02-03 10:10:10"));
оповещение (GetTime ("2013-02-03"));
оповещение (getTime ("2013-02"));
оповещение (getTime ("2013"));
Следующая функция, которая преобразует временные метки в формат даты, поддерживает пользовательские форматы даты, а эффект аналогичен функции даты PHP, а также поддерживает браузеры, такие как IE6+, Google, Firefox и т. Д. Эта функция реализована пользователями сети, и я напишу, если у меня будет время в будущем^_^
Кода -копия выглядит следующим образом:
Date Date (Format, TimeStamp) {
var a, jsdate = ((timeStamp)? Новая дата (TimeStamp*1000): новая дата ());
var pad = function (n, c) {
if ((n = n + "") .length <c) {
вернуть новый массив (++ c - n.length) .join ("0")+n;
} еще {
возврат n;
}
};
var txt_weekdays = [«воскресенье», «понедельник», «вторник», «Среда», «Четверг», «Пятница», «Суббота»];
var txt_ordin = {1: «st», 2: «nd», 3: «rd», 21: «st», 22: «nd», 23: "rd", 31: "st"};
var txt_months = [«», «январь», «февраль», «март», «апрель», «май», «июнь», «июль», «июль», «Август», «сентябрь», «Октябрь», «Ноябрь», «Декабрь»];
var f = {
// День
D: function () {return Pad (fj (), 2)},
D: function () {return fl (). Substr (0,3)},
J: function () {return jsdate.getDate ()},
l: function () {return txt_weekdays [fw ()]},
N: function () {return fw () + 1},
S: function () {return txt_ordin [fj ()]? txt_ordin [fj ()]: 'th'},
w: function () {return jsdate.getday ()},
z: function () {return (jsdate - new Date (jsdate.getfyear () + "/1/1")))/864e5 >> 0},
// Неделя
W: function () {
var a = fz (), b = 364 + fl () - a;
var nd2, nd = (новая дата (jsdate.getifleear () + "/1/1"). getDay () || 7) - 1;
if (b <= 2 && ((jsdate.getday () || 7) - 1) <= 2 - b) {
возврат 1;
} еще{
if (a <= 2 && nd> = 4 && a> = (6 - nd)) {
nd2 = новая дата (jsdate.getfyear () - 1 + "/12/11");
Дата возврата ("w", math.round (nd2.gettime ()/1000));
} еще{
return (1 + (nd <= 3? ((a + nd) / 7): (a - (7 - nd)) / 7) >> 0);
}
}
},
// Месяц
F: function () {return txt_months [fn ()]},
m: function () {return pad (fn (), 2)},
M: function () {return ff (). Substr (0,3)},
n: function () {return jsdate.getmonth () + 1},
t: function () {
var n;
if ((n = jsdate.getmonth () + 1) == 2) {
вернуть 28 + fl ();
} еще{
if (n & 1 && n <8 ||! (n & 1) && n> 7) {
возврат 31;
} еще{
возврат 30;
}
}
},
// Год
L: function () {var y = fy (); return (! (Y & 3) && (y % 1e2 ||! (Y % 4e2)))? 1: 0},
// o еще не поддерживается
Y: function () {return jsdate.getfyear ()},
y: function () {return (jsdate.getfyear () + "") .slice (2)},
// Время
A: function () {return jsdate.gethours ()> 11? "PM": "Am"},
A: function () {return fa (). Touppercase ()},
B: function () {
// Питер Пол Кох:
var off = (jsdate.gettimezoneoffset () + 60)*60;
var theSeconds = (jsdate.gethours () * 3600) + (jsdate.getminutes () * 60) + jsdate.getSeconds () + off;
var beat = math.floor (theseconds/86.4);
if (beat> 1000) beat -= 1000;
if (beat <0) beat += 1000;
if ((string (beat)). длина == 1) beat = "00"+beat;
if ((string (beat)). длина == 2) beat = "0"+beat;
вернуть бит;
},
G: function () {return jsdate.gethours () % 12 || 12},
G: function () {return jsdate.gethours ()},
H: function () {return Pad (fg (), 2)},
H: function () {return pad (jsdate.gethours (), 2)},
i: function () {return pad (jsdate.getminutes (), 2)},
S: function () {return Pad (jsdate.getSeconds (), 2)},
// ты еще не поддерживается
// часовой пояс
// e еще не поддерживается
// я еще не поддержал
O: function () {
var T = PAD (Math.abs (jsdate.getTimezoneOffset ()/60*100), 4);
if (jsdate.gettimezoneoffset ()> 0) t = "-" + t; иначе t = " +" + t;
возврат t;
},
P: function () {var o = fo (); return (o.substr (0, 3) + ":" + o.substr (3, 2))},
// еще не поддерживается
// z еще не поддерживается
// Полная дата/время
C: function () {return fy () + "-" + fm () + "-" + fd () + "t" + fh () + ":" + fi () + ":" + fs () + fp ()},
// r еще не поддерживается
U: function () {return math.round (jsdate.gettime ()/1000)}
};
return format.replace (/[//]? ([a-za-z])/g, function (t, s) {
if (t! = s) {
// сбежал
ret = s;
} else if (f [s]) {
// существует функция даты
ret = f [s] ();
} еще{
// ничего особенного
ret = s;
}
возврат возврата;
});
}
//тест
Alert (Date ('ymd H: i: s', (новая дата) .getTime ()/1000));
Alert (date ('ym-d', (новая дата) .gettime ()/1000));
оповещение (дата ('YMD H: I: S', '1355252653'));