Normally the site developer will have a pre-made database table with columns for zip/postal code, latitude, longitude, city, state/provence, country; so that they can find what zip codes are next to each other.
Then they make another table for all the company's locations.
The search just takes the zip code center latitude-&-longitude, and sorts the company locations by the distance to the original zip code center latitude-&-longitude.
Looking at it, I think the Starbucks site in particular is just using one of Google's API's, maybe this --> https://developers.google.com/maps/articles/phpsqlajax_v3?hl=en-EN&csw=1 ?