They used to take me weeks.
Now I have become proficient at coding and design work, they usually take me a couple of days.
Some of my favourite sites took less than a day to build.
My tip is once you have got something that works (be it design, layout, etc.) reuse it. Build up your own bank of coding and design work. It saves a lot of time later if you know you have already built a login interface, for example.
I
am of the belief that sites are launched first then tested later. All sites go through teething problems. Some minor, some major. But you have to offset a site with problems with potential revenue lost.
I only launch a site that I
am happy with. If it kept producing script errors, I wouldn't launch it. If the code validates, I launch it.
Not sure if this is what you were after but hope it helps!