I am not sure why you would need a trigger for this. I think workflow rules would work just fine.
We created date/time fields for each of our statuses for reporting on time between each status. You could create the same for each of yours.
After the fields are created, create your workflow rules to capture the change in status. When the status equals the value you want, populate the respective date/time field with Now().