lubridate has a function called floor_date
which rounds date-times down. Calling it with unit = "month"
does exactly what you want:
library(lubridate)
full.date <- ymd_hms("2013-01-01 00:00:21")
floor_date(full.date, "month")
[1] "2013-01-01 UTC"