Mysql doesn't support column-based trigger actions, so your intention can't be coded at the action level of the trigger.
You can simulate the action in the logic of the rigger though by checking if any if the other columns have changed.
Assuming there are 3 other columns col1, col2, col3:
DELIMITER $$
CREATE TRIGGER pubdate BEFORE UPDATE ON `table`
FOR EACH ROW BEGIN
IF NOT (NEW.col1 <=> OLD.col1
AND NEW.col2 <=> OLD.col2 -- compare more other column as required
AND NEW.col3 <=> OLD.col3) THEN
SET NEW.date = NOW();
END IF;
END$$
DELIMITER ;
FYI the <=>
operator is mysql's null-safe equals, which considers null <=> null
to be true.