при использовании новой даты я получаю следующее:
Пт 29 мая 2009 22:39:02 GMT + 0800 (Китайское стандартное время)
но я хочу xxxx-xx-xx xx: xx: xx форматированная строка времени
при использовании новой даты я получаю следующее:
Пт 29 мая 2009 22:39:02 GMT + 0800 (Китайское стандартное время)
но я хочу xxxx-xx-xx xx: xx: xx форматированная строка времени
Несмотря на то, что в некоторых случаях он не разбивается на два символа, он делает то, что я ожидаю, что вы хотите
function getFormattedDate() {
var date = new Date();
var str = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
return str;
}
ответы jonathan не имеют начального нуля. Это простое решение:
function getFormattedDate(){
var d = new Date();
d = d.getFullYear() + "-" + ('0' + (d.getMonth() + 1)).slice(-2) + "-" + ('0' + d.getDate()).slice(-2) + " " + ('0' + d.getHours()).slice(-2) + ":" + ('0' + d.getMinutes()).slice(-2) + ":" + ('0' + d.getSeconds()).slice(-2);
return d;
}
в основном добавьте 0, а затем просто возьмите 2 последних символа. Так что 031 займет 31. 01 займет 01...
Вы можете использовать метод toJSON() для получения формата стиля DateTime
var today = new Date().toJSON();
// produces something like: 2012-10-29T21:54:07.609Z
Оттуда вы можете очистить его...
Чтобы получить дату и время:
var today = new Date().toJSON().substring(0,19).replace('T',' ');
Чтобы получить только дату:
var today = new Date().toJSON().substring(0,10).replace('T',' ');
Чтобы захватить только время:
var today = new Date().toJSON().substring(10,19).replace('T',' ');
Изменить: как указывали другие, это будет работать только для UTC. Посмотрите выше, чтобы получить более качественные ответы.
это может быть излишним для того, что вы хотите, но вы просмотрели datejs?
То, что вы ищете, это toISOString, которое будет частью ECMAScript Fifth Edition. Тем временем вы можете просто использовать метод toJSON, найденный в json2.js из json.org.
Частью интереса для вас будет:
Date.prototype.toJSON = function (key) {
function f(n) {
// Format integers to have at least two digits.
return n < 10 ? '0' + n : n;
}
return this.getUTCFullYear() + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate()) + 'T' +
f(this.getUTCHours()) + ':' +
f(this.getUTCMinutes()) + ':' +
f(this.getUTCSeconds()) + 'Z';
};
Попробуйте это.
var datetime = new Date().toJSON().slice(0,10)
+ " " + new Date(new Date()).toString().split(' ')[4];
console.log(datetime);
Date.prototype.toUTCArray= function(){
var D= this;
return [D.getUTCFullYear(), D.getUTCMonth(), D.getUTCDate(), D.getUTCHours(),
D.getUTCMinutes(), D.getUTCSeconds()];
}
Date.prototype.toISO= function(t){
var tem, A= this.toUTCArray(), i= 0;
A[1]+= 1;
while(i++<7){
tem= A[i];
if(tem<10) A[i]= '0'+tem;
}
return A.splice(0, 3).join('-')+'T'+A.join(':');
// you can use a space instead of 'T' here
}
Date.fromISO= function(s){
var i= 0, A= s.split(/\D+/);
while(i++<7){
if(!A[i]) A[i]= 0;
else A[i]= parseInt(A[i], 10);
}
--s[1];
return new Date(Date.UTC(A[0], A[1], A[2], A[3], A[4], A[5]));
}
var D= new Date();
var s1= D.toISO();
var s2= Date.fromISO(s1);
alert('ISO= '+s1+'\nlocal Date returned:\n'+s2);
Библиотека JavaScript Any + Time (TM) Объект AnyTime.Converter легко преобразует объект JS Date в ISO или практически в любой другой формат. на самом деле, формат, который вы хотите, является форматом по умолчанию, поэтому вы можете просто сказать:
(new AnyTime.Converter()).format(new Date());
Преобразование миллисекунд в формат даты с помощью javascript
http://jsfiddle.net/kavithaReddy/cspn3pj0/1/
function () {
var values = "/Date(1409819809000)/";
var dt = new Date(parseInt(values.substring(6, values.length - 2)));
var dtString1 = (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
alert(dtString1);
})();
Еще одно решение: Я пытался получить такой же формат (YYYY-MM-DD HH: MM: SS), но date.getMonth() был найден неточным. Поэтому я решил получить формат самостоятельно.
Этот код был развернут в начале 2015 года, , и он работает до даты.
var m_names =["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var d = new Date();
var spl = d.toString().split(' ');
var mnth = parseInt(m_names.indexOf(spl[1])+1).toString();
mnth = (mnth.length == 1) ? '0'+mnth : mnth
// yyyy - mm - dd hh:mm:ss
var data = spl[3]+'-'+mnth+'-'+spl[2]+' '+spl[4]
alert(data)