Возможный дубликат:
Форматирование даты в JavaScript
У меня есть следующий фрагмент script. Это ползунок HTML5 с диапазоном дат. Ползунок использует временную метку unix, и я хочу отобразить текущий выбор в читаемом формате.
Это работает нормально, но выводится как "Wed May 16 2012 08:07:30 GMT + 0100 (GMT Daylight Time)", несмотря на то, что я указываю формат "yyyy-MM-dd HH: mm: ss".
Любые идеи, почему это не выводится в моем формате?
<input id="slider3" type="range" min="1337149800" max="1337160600" step="450" onchange="printValue('slider3','rangeValue3')"/>
<input id="rangeValue3" type="text" size="90"/>
<script>
function printValue(sliderID, textbox) {
var x = document.getElementById(textbox);
var y = document.getElementById(sliderID);
var d1=new Date(y.value*1000);
var newtimestamp = d1.toString("yyyy-MM-dd HH:mm:ss");
x.value = newtimestamp;
}
</script>
EDIT: Спасибо за подталкивание в правильном направлении, на самом деле это невозможно с помощью Date. Это работает вместо:
<input id="slider3" type="range" min="1337149800" max="1337160600" step="450" onchange="printValue('slider3','rangeValue3')"/>
<input id="rangeValue3" type="text" size="90"/>
<script>
function printValue(sliderID, textbox) {
var x = document.getElementById(textbox);
var y = document.getElementById(sliderID);
var d1=new Date(y.value*1000);
var curr_year = d1.getFullYear();
var curr_month = d1.getMonth() + 1; //Months are zero based
if (curr_month < 10)
curr_month = "0" + curr_month;
var curr_date = d1.getDate();
if (curr_date < 10)
curr_date = "0" + curr_date;
var curr_hour = d1.getHours();
if (curr_hour < 10)
curr_hour = "0" + curr_hour;
var curr_min = d1.getMinutes();
if (curr_min < 10)
curr_min = "0" + curr_min;
var curr_sec = d1.getSeconds();
if (curr_sec < 10)
curr_sec = "0" + curr_sec;
var newtimestamp = curr_year + "-" + curr_month + "-" + curr_date + " " + curr_hour + ":" + curr_min + ":" + curr_sec;
x.value = newtimestamp;
}