What about:
$salt=implode(posix_uname());
I wouldn't use it to secure banking information, but for fighting spam, I think it suffices.
If the timestamp is to old I just notify the user that I suspect it is spam, and say they should repost the message. Of course already refilling the field with the user generated content. This would however clash with the requirement of the timestamp not being to recent.