В коде нашего сотрудника узрел следующее:
var dateString = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '.' + (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth()+1) + '.' + date.getFullYear();
Задумался. Ну, то, что в нашей библиотеке давно реализована функция lpad, и то, что такое выражение тоже надо выносить в библиотеку, рядышком с formatNumber, это всё само собой. Но неужто нет лаконичного способа?
На самом деле, есть даже два (очевидная дата.toLocaleDateString() возвращает нечто неприемлемое, типа «9 Март 2013 г.»): дата.toLocaleFormat("%d.%m.%Y") и дата.toISOString().substring(0, 10).
Метод toLocaleFormat внедрён в Javascript 1.6 (Fx1.5), но он нестандартный и
есть предложение его выпилить.
С другой стороны, есть
метод toISOString, внедрённый в Javascript 1.8 (Fx3) и включённый в стандарт
ECMA-262 5-й редакции. Он, однако же, выдаст нам фиксированный формат даты (ISO 8601), хорошо подходящий для сортировки, но отличающийся от привычного русского.
Оба варианта не очень хороши, но на будущее есть
стандарт по интернационализации, хотя
пока и не реализованный [в «Файерфокс»]. Ну, что, надо полифилл писать…