"Peter has been sleeping for four hours."
Translation:पीटर चार घंटे से सो रहा है।
Great question and I must confess this is something I've never thought about before.
Units like घंटा, when following a number greater than 1, are sometimes pluralised and sometimes not. So, in the oblique case, both घंटे and घंटों are used. This is my from my experience as a native speaker though and I'm not sure if one is more grammatically correct than the other. I hope others also chime in regarding this.
However, when used in the plural sense and not preceded by a number, the plural form is always used.
Eg: पीटर कई घंटों से सो रहा है। (Peter has been sleeping for many hours). घंटे would never be used in this sentence.
It's because this is not a literal translation.
The literal translation of 'पीटर चार घंटे से सो रहा है।' would be 'Peter is sleeping since four hours' which is of course not correct in English. This is because Hindi often substitutes the present continuous tense in place of the present perfect continuous tense.
You can instead think of it as being 'Peter has been sleeping since four hours ago' where से functions like 'since'