How to unpublish postings according to the value of a field?
Your question seems to exist of actually 2 questions, so here are 2 parts of an answer to address each of them (I'm assuming this question is about D7).

Part 1

Refer to my answer to "How to specify a Rules condition related to select list values?" for an example Rule (in Rules export format) that allows for specifying a Rules condition related to a specific value selected via a selection list.

With this (and some minor tuning of that sample to fit your field and values), you have an answer to your "if choice X, than unpublish after Y period of time".

Part 2

Refer to my answer to "Redirect users with specified roles to specified term pages", which shows how you can redirect to various URLs (depending on some role). It also explains 2 possible approaches for either creating multiple rules (1 for each role) versus just 1 rule (by using the Conditional Rules module).

With this (and some minor tuning of that sample to fit your case here), you have an answer to your "does this mean that I have to make 3 different rules, one for each time limit". The actual answer is: either way can work (personally I'd go for just 1 rule, using the Conditional Rules module).

PS: So yes this can be done without PHP, it only requires some site building using the Admin UI for Rules.