Thank you klabundee and blackhornet, if I understood correctly, the solution is to compare everything according to UTC time, as a reference point?
For example, if the player lives in different UTC time zone, and If the player spent the entire energy, energy charging time should be calculated in according to the UTC time, regardless of the player's time zone?
Does this mean that all this data required for comparison should be stored on an external server, for every player?
Probably the best way is comparing suspended time.
Set an action Browser->On Suspended ->Store the Date/Time from an external server;
Set an action Browser->On Resumed ->Get the current Date/Time from an external server from same time zone as On Suspended and compare if the time is different;
Is it different? OK so now you need to perfomance the life return, new gifts, etc.. based on this amount of time between on suspended and on resumed.