Make sure location services are set to ON and the entry specifically for Weather is also ON. If you originally told it to get weather by current location, location services may have been accidentally cut off at some point and it's still trying to look it up that way.
You may also try to open the Weather app by its icon on the screen on by tapping the weather graphic that shows up in the notification center (slide down from top of the screen)
Once the full app is open, hit the tiny "I" in the bottom right corner and you may or may not see 1 or more cities listed there. I'd just delete any entries in there (even if your city is already in there, delete it) and start from scratch, hit + and type in your zip code it should show your city; chose it and close it out.
What this does is sets the weather app to stop using location services to find your current location, it will pull based on the zip code entered always.
I deleted every city out and redid mine, adding my zip and picking the city.. then I was able to cut off it's access to location services totally and it still shows the correct conditions and forecast (and doesn't compain they need to be cut on).