Moju češtinu ber s rezervou, ale toto by mohlo byť to, čo chceš:
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>Čas</title>
</head><body>
<script>
function inflect(texts, n) {
return texts[n == 1 ? 0 : (1 < n && n < 5 ? 1 : 2)];
}
var numbers = [
['nula', 'jedna', 'dvě', 'tři', 'čtyři', 'pět', 'šest', 'sedm', 'osm', 'devět', 'deset', 'jedenáct', 'dvanáct', 'třináct', 'čtrnáct', 'patnáct', 'šestnáct', 'sedmnáct', 'osmnáct', 'devatenáct'],
['', '', 'dvacet', 'třicet', 'čtyřicet', 'padesát']
];
var texts = {
info: ['Právě je', 'Právě jsou ', 'Právě je'],
hours: ['hodina', 'hodiny', 'hodin'],
minutes: ['minuta', 'minuty', 'minut'],
seconds: ['sekunda', 'sekundy', 'sekund']
};
function toWords(n) {
var n0 = n % 10;
var n1 = 0|n / 10;
return n1 == 1 ? numbers[0][n] : numbers[1][n1] + (!n1 || n0 ? numbers[0][n0] : '');
}
var div = document.body.appendChild(document.createElement('div'));
var text = div.appendChild(document.createTextNode(''));
setInterval(function() {
var date = new Date;
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
text.data = [
inflect(texts.info, h), ' ',
toWords(h), ' ', inflect(texts.hours, h), ', ',
toWords(m), ' ', inflect(texts.minutes, m), ' a ',
toWords(s), ' ', inflect(texts.seconds, s), '.'
].join('');
}, 200);
</script>
</body></html>