diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py
index 5b0971aef..2153968ce 100644
--- a/discord/ext/commands/core.py
+++ b/discord/ext/commands/core.py
@@ -764,7 +764,8 @@ class Command(_BaseCommand):
 
     def _prepare_cooldowns(self, ctx):
         if self._buckets.valid:
-            current = ctx.message.created_at.replace(tzinfo=datetime.timezone.utc).timestamp()
+            dt = ctx.message.edited_at or ctx.message.created_at
+            current = dt.replace(tzinfo=datetime.timezone.utc).timestamp()
             bucket = self._buckets.get_bucket(ctx.message, current)
             retry_after = bucket.update_rate_limit(current)
             if retry_after:
@@ -805,7 +806,8 @@ class Command(_BaseCommand):
             return False
 
         bucket = self._buckets.get_bucket(ctx.message)
-        current = ctx.message.created_at.replace(tzinfo=datetime.timezone.utc).timestamp()
+        dt = ctx.message.edited_at or ctx.message.created_at
+        current = dt.replace(tzinfo=datetime.timezone.utc).timestamp()
         return bucket.get_tokens(current) == 0
 
     def reset_cooldown(self, ctx):
@@ -838,7 +840,8 @@ class Command(_BaseCommand):
         """
         if self._buckets.valid:
             bucket = self._buckets.get_bucket(ctx.message)
-            current = ctx.message.created_at.replace(tzinfo=datetime.timezone.utc).timestamp()
+            dt = ctx.message.edited_at or ctx.message.created_at
+            current = dt.replace(tzinfo=datetime.timezone.utc).timestamp()
             return bucket.get_retry_after(current)
 
         return 0.0