In terms on flights, 54 days ago was a magic number but this is changed over time. Now, the prices are totally fluctuating depending upon various factors such as season, time of flight, demands, destinations tourism demands and lot others. So now there is no such fixed time to book, however mon to wed is the best time to book. Same applies in terms of hotels. Also avoid over searching for tickets, it leads to cache traffic which companies utilize to inflate prices.
Book on a Tuesday 6 weeks before your trip. Statistically lowest prices then. But be careful now though. Few airlines will be on strike next couple of months
Depends on the offers for flight the season etc. so better create a alert of particular trip well in advance in skyscanner and bag the cheapest flight ticket