fatta ora ... non e' molto ottimizzata e affatto commentata, la data che devi passare deve essere del formato

'y:[m-1]:d:H:i:s'

il resto lo fa javascript, pagina di esempio, copia e incolla e testa con tutti i browsers che vuoi

codice:
<html>
	<head>
		<script type="text/javascript">
			var CountDown = function( id, endDate ) {
				// Andrea Giammarchi (C) [ 14/04/2005 ]
				function __dateDifference( after ) {
					var now = new Date();
					var __dtt = new Date( ( after.getTime() - now.getTime() ) );
					var __dtf = new Date(
						__dtt.getUTCFullYear(),
						__dtt.getUTCMonth(), 
						__dtt.getUTCDate(),
						__dtt.getUTCHours(),
						__dtt.getUTCMinutes(),
						__dtt.getUTCSeconds(),
						__dtt.getUTCMilliseconds()
					);
					return __dtf;
				}
				function __populate() {
					var remainDate = __dateDifference( __endDate );
					var year = remainDate.getFullYear() - 1970;
					var month = remainDate.getMonth();
					var day = remainDate.getDate() - 1;
					var hour = remainDate.getHours();
					var min = remainDate.getMinutes();
					var sec = remainDate.getSeconds();
					var msec = remainDate.getMilliseconds();
					var who = year + '-'
					+ month + '-'
					+ day + ' '
					+ hour + ':'
					+ min + ':'
					+ sec + '.'
					+ msec;
					document.getElementById( id ).innerHTML = who;
				}
				var __end = endDate.split(':');
				var __endDate = new Date(
					__end[0],
					__end[1],
					__end[2], 
					__end[3],
					__end[4],
					__end[5]
				);
				var __intervall = setInterval( __populate, 456 );
			}
		</script>
	</head>
	<body onload="var cd = new CountDown( 'countdown', '2005:04:14:20:00:00' );">
		<div>Rimangono: <span id="countdown"></span></div>
	</body>
</html>