According to the National Institutes of Health, it can take anywhere from 2 weeks to several months for a bruise to go away. The exact amount of time depends on individual body healing processes.
Bruises are caused when blood gets trapped under the skin's surface. This happens when an injury causes blood vessels to burst but does not break the skin. Because of this, the blood has nowhere to go.
Bruises aren't limited to just below the skin. It is possible to get a bruise on the bone. When bruises first form, they are red in color. Often, they turn a blue-purple color before turning green-yellow.
To reduce the pain associated with bruises, ice can help. If possible, someone with a bruise should elevate the area above the heart, which will help control blood flow to the area.