Here is one way. Remember that one of the arguments that you may pass to date() is a Unix timestamp. Get the timestamp, add your offset (converted to seconds), and print the results.
// start with your offset in hours ...
$offset = 7;
// convert it to seconds
$offset = 60 60 $offset;
// get GMT as a unix timestamp,
// which is based on seconds
$gmt = time();
// add your offset to adjust to your local time
$localtime = $gmt + $offset;
// now you can use date() to display it
// in your preferred format
echo date("d/m/Y H:i:s", $localtime);
Beware of one thing, though: Your Web server may or may not be returning GMT. Although the PHP manual says time() returns "the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)," it's fairly common for servers to be configured so that time() returns a local value, not GMT value. If that's the case, you'll need to figure out the offset from the real server time and adjust accordingly.