// Pad with zeros
// Test DST.
var newdate = new Date(2006,03,02,02,30);
var strdate = newdate.getFullYear() + "/" + PZ(newdate.getMonth()+1) + "/" + PZ(newdate.getDate()) + " " + PZ(newdate.getHours()) + ":" + PZ(newdate.getMinutes());
Second, it is not a bug. Right now we are on standard time and the issue you describe only exists for that 1 hour period on the spring change for previous years. The fall time change and future spring changes do not react the same.
Now the difficult part of explaining why it is correct. At 2AM (daylight time) the time jumped to 3AM (standard time). So, looking back from today - using standard time - 3AM was 3AM. But, what was it 1 minute prior to that (2:59AM)? There was no 2:59AM because we skipped over it - so we skip over it, going in reverse this time, and get 1:59AM.
Okay. I'm reading alot into what you said so let me see if I understand.