The best 12V electric heater is Bediffer Automobile Interior Heater, Schumacher 1225 Ceramic Heater and the RoadPro 12V Ceramic Heater.
However while 12 volt heaters can work some they don't put enough heat to really do much of a good job to heat a car, especially in really cold temperatures and they draw your battery down as well.
Always ensure that the engine is running before you turn on the 12 volt heater and keep it running to prevent the battery from going dead.
If you want to heat your car it's best to use the engines heat which is how a gasoline or diesel engine cars or vehicle heater works.
A vehicle that has a gas or diesel engine uses the engines heat from the hot coolant that passes through a heater core under the dash.
Then the blower motor blows air over the heater core and sends the heat out into the vehicle to heat the car.
Using the vehicles heater does not use any additional gas or diesel when used as it simply uses the heat that comes off the engines coolant.
If your heater is not working then you could use a 12 volt electric heater which are okay but not as good as the actual heater in the car.
If your vehicles heater is not working it could be a bad or clogged heater core, bad switches, clogged heater hoses, bad blower motor etc.