More js filters cleanup: fix timecode, performance

timecode was broken with negative times and days without hours.
Switched truncate only to characters for more length consistency.
Made both far more efficient (no more arrays).