Personally, I'd select a Raspberry Pi 3BRaspberry Pi 3B for this, although it's probably far more powerful than you really need. The reasons for me suggesting this are:
It has built-in 802.11 b/g/n Wireless LAN, so you'll be able to connect it to a Wi-Fi network rather than by Ethernet cable
It also supports Bluetooth, so you might be able to connect to the phone through that.
You will also need a display unit, and, conveniently, there are several displays designed for the Raspberry Pi, like this 4DPI-32 touchscreenthis 4DPI-32 touchscreen. You should just be able to slot the display directly on to the 40-pin header:
(source: raspberrypi.org)
Raspberry Pi Foundation, CC BY-SA 4.0CC BY-SA 4.0. I'm aware this is technically a Pi 2B, but the GPIO is the same on the 3B.
As for the programming aspect in this case, all you'd need to do is fetch the weather from an API somewhere, and display it on the screen as a GUI program. The display just functions like any HDMI output for the Pi, so you don't need to do anything special. For Python, you could use Tkinter to create a basic UI, or you might even choose to write a web application in HTML/CSS/JS, depending on what you're comfortable with. You could use the OpenWeatherMap API for free; the documentation is linked for each API endpoint.
At this point, it's up to you really. The best language here is the language you're most comfortable with. If you like AngularJS, just create a HTML page, fetch the weather with Angular (or use a library like this to help you) and display it using some CSS to make it look nice.
To actually get the location, I suspect it would be easier to just allow the user to type in their location on the Pi's touch screen. Sending the location of your phone is probably a little more difficult, although you might be able to find something if you research a lot.
For battery usage, this question on Raspberry Pi Stack Exchange is worth reading.