When I was a little girl, I thought the concept of zero had always been with humans, sort of like food and pain and sky. When I got a bit older, I learned that zero had been discovered/invented rather recently in recorded history. The truth, as it often is, is a bit more complicated than that.
Zero has two uses: as a positional place-holder in place-value systems, and as a number.
The Hindu-Arabic numeral system with a “0” for both meanings came to Europe in around 1200 AD via the Persian mathematician and polymath Al-Khwarizmi (for whom “algorithm” is named) who described them in 825 AD. He might have built on work on place-value systems, which were described as early as 458 AD in India which wrote out the words for numerals. The first known, dated, unambiguous use of a glyph for 0 in India was on an inscription dated 876 AD.
Base-ten arithmetic and symbols for zeros had been scattered around for quite some time before then.
As early as 1800 BC, the Babylonians were doing complex math with a base-sixty system. (Their base-60 system lives on in how we count time and degrees in a circle.) At first, they left a space for place-values where we would put a 0, but by 700 BC, they were using special glyphs for placeholder in the middle of numbers (but not at the end!). They did not, however, use the 0 by itself to show a quantity of nothing.
Indians might have been using dots for a true zero as early as 30 BC, but the dating of that document is questioned.
Many other civilizations used a space for zero, including Incan (on quipu), India around 300 BC, and China around 300 BC. The Mayans, as early as 36 BC, used special symbols to denote zero in their base-20 counting system, but not for a number.
In 130 AD, Ptolemy used a circle with a bar over it as a true zero, but only for positions after the decimal place, not for the integer part of numbers.
Links: Wikipedia