Hiện tại hoàn thành và quá khứ đơn đều nói về việc đã xảy ra, nhưng khác nhau ở một điểm cốt lõi: quá khứ đơn gắn với một thời điểm xác định đã khép lại (yesterday, last year, in 2019, two days ago), còn hiện tại hoàn thành nối quá khứ với hiện tại, không nói rõ lúc nào, và kết quả hay khoảng thời gian vẫn còn liên quan tới bây giờ.
Vì vậy câu “I have seen him yesterday” là sai: đã có “yesterday” là mốc đóng, phải dùng “I saw him yesterday”. Còn “I have seen this film” (từng xem rồi, không cần biết khi nào) là đúng. Phần dưới đưa ra hai câu hỏi kiểm tra, bảng câu sai thường gặp, và cách dùng since, for, ago, already, yet, just để không bao giờ nhầm nữa.
Hai câu hỏi quyết định chọn thì nào
Câu hỏi 1: Câu có mốc thời gian quá khứ xác định không? Nếu có các cụm như yesterday, last night, last month, in 2015, ago, when I was a child, at 7 o’clock this morning, thì dùng quá khứ đơn. Đây là quy tắc gần như tuyệt đối với tiếng Anh chuẩn. Ngay cả khi việc đó mới xảy ra năm phút trước, hễ nói “five minutes ago” là phải dùng quá khứ đơn.
Câu hỏi 2: Người nói đang quan tâm tới kết quả hay khoảng thời gian kéo tới hiện tại? Nếu điều quan trọng là “bây giờ thế nào”, dùng hiện tại hoàn thành. “I have lost my keys” ngụ ý bây giờ vẫn chưa tìm thấy, mình không vào nhà được. “I lost my keys last week” chỉ kể lại chuyện tuần trước, có thể đã tìm lại hoặc đã làm chìa mới.
Khoảng thời gian còn mở hay đã đóng? “I have drunk three cups of coffee today” đúng vì hôm nay chưa hết. Nhưng tối nay kể lại chuyện sáng nay khi buổi sáng đã qua, người Anh hay nói “I drank three cups this morning”. Tương tự, “She has written two books” (bà ấy còn sống, có thể viết thêm) khác với “Shakespeare wrote many plays” (giai đoạn đó đã khép lại).
Câu hỏi bắt đầu bằng When luôn dùng quá khứ đơn. Vì “when” hỏi đúng thời điểm, câu trả lời sẽ là mốc xác định. Nói “When did you arrive?”, không nói “When have you arrived?”. Trái lại, câu hỏi về trải nghiệm không có mốc, “Have you ever tried durian?”, dùng hiện tại hoàn thành.
Bảng câu sai và câu đúng người Việt hay gặp
Các câu ở cột trái đều là lỗi thật thường thấy trong bài viết và khi nói. Đọc to cột phải vài lần để tai quen với dạng đúng.
| Câu sai | Câu đúng | Vì sao |
|---|---|---|
| I have seen him yesterday. | I saw him yesterday. | Yesterday là mốc đóng, phải dùng quá khứ đơn. |
| I have gone to Da Nang last summer. | I went to Da Nang last summer. | Last summer là mốc xác định. |
| I live here since 2018. | I have lived here since 2018. | Việc bắt đầu từ quá khứ và còn kéo tới nay. |
| When have you finished? | When did you finish? | Câu hỏi When luôn hỏi thời điểm xác định. |
| Did you ever eat pho? | Have you ever eaten pho? | Hỏi trải nghiệm trong cả đời tới nay (tiếng Anh–Mỹ đôi khi chấp nhận dạng trái). |
| I have finished it two hours ago. | I finished it two hours ago. | Ago luôn đi với quá khứ đơn. |
| She works here for five years. | She has worked here for five years. | Đã làm 5 năm và vẫn đang làm. |
| I didn’t see that film yet. | I haven’t seen that film yet. | Yet trong câu phủ định đi với hiện tại hoàn thành (trong tiếng Anh–Anh). |
Dòng cuối của bảng có một lưu ý: trong tiếng Anh–Mỹ thân mật, người ta khá hay nói “Did you eat yet?” hay “I just saw him”. Đó không phải lỗi trong văn nói Mỹ. Tuy vậy, khi thi IELTS, TOEIC hay viết email trang trọng, dùng hiện tại hoàn thành với yet, already, just vẫn là lựa chọn an toàn nhất.
Mẹo nhớ ngắn: “thấy mốc là lùi về quá khứ đơn, không thấy mốc mà còn liên quan bây giờ thì hoàn thành”.
Một kiểu sai ít ai để ý là dùng hiện tại hoàn thành khi kể chuyện nối tiếp: “I have woken up, then I have had breakfast…”. Khi đã kể một chuỗi sự việc theo thứ tự, người nghe ngầm hiểu có mốc thời gian, nên cả chuỗi phải ở quá khứ đơn: “I woke up at six, had breakfast and left at seven.” Hiện tại hoàn thành chỉ dùng cho câu mở đầu giới thiệu, ví dụ “I’ve had a crazy morning”, sau đó chuyển hẳn sang quá khứ đơn để kể chi tiết.
Since, for, ago: ba từ chỉ thời gian hay bị đổi chỗ
Ba từ này đều liên quan tới thời gian nhưng mỗi từ gắn chặt với một thì và một kiểu cụm thời gian.
| Từ | Đi với thì | Theo sau là | Ví dụ |
|---|---|---|---|
| since | Hiện tại hoàn thành (hoặc hoàn thành tiếp diễn) | Mốc bắt đầu: since Monday, since 2010, since I was ten | We have known each other since high school. |
| for | Cả hai thì, tuỳ việc còn tiếp hay đã xong | Khoảng thời gian: for three days, for a long time | He has worked there for six years. / He worked there for six years (nay đã nghỉ). |
| ago | Quá khứ đơn | Khoảng thời gian đứng trước ago: three days ago | She moved to Hue three years ago. |
Điểm cần chú ý là “for” không tự quyết định thì. “I lived in Hanoi for five years” nghĩa là giai đoạn đó đã kết thúc, bây giờ không ở Hà Nội nữa. “I have lived in Hanoi for five years” nghĩa là vẫn đang ở. Cùng một khoảng thời gian, chỉ đổi thì đã đổi hẳn thông tin.
Một lỗi khác: “since three years” là sai, vì sau since phải là mốc chứ không phải khoảng. Đúng là “for three years” hoặc “since 2023”. Khi chuyển đổi câu, có thể viết: “It has been three years since we last met” bằng nghĩa với “We last met three years ago”.
Already, yet, just, ever, never: đặt ở đâu và mang nghĩa gì
Năm từ này là “tín hiệu” quen thuộc của hiện tại hoàn thành. Vị trí của chúng trong câu khác nhau, đặt sai chỗ nghe rất lạ tai.
- just = vừa mới, đứng giữa have và V3: “I’ve just sent the email.” Nghĩa là vừa gửi cách đây ít phút, kết quả còn nóng hổi.
- already = đã rồi, sớm hơn mong đợi, thường đứng giữa have và V3: “She has already paid.” Trong câu hỏi, already thể hiện sự ngạc nhiên: “Have you finished already?”
- yet = chưa (phủ định) hoặc đã… chưa (câu hỏi), đứng cuối câu: “I haven’t decided yet.” “Has the parcel arrived yet?” Không dùng yet trong câu khẳng định với nghĩa “đã”.
- ever = từng bao giờ chưa, dùng chủ yếu trong câu hỏi: “Have you ever been to Sa Pa (Lào Cai)?”
- never = chưa bao giờ, mang nghĩa phủ định nên không thêm not: “I have never ridden a horse”, không nói “I haven’t never”.
- so far, recently, lately = cho tới giờ, gần đây: “We have had three meetings so far this week.”
Khi nói nhanh, người bản xứ rút gọn have/has thành ’ve/’s: “I’ve just eaten”, “She’s already left”. Người Việt nghe hay bỏ sót âm /v/ nhỏ này nên tưởng họ nói quá khứ đơn. Luyện nghe các câu ngắn như vậy giúp bạn bắt được thì ngay cả khi người ta nói rất nhanh.
Have been và have gone, cùng cách tự luyện cho quen tay
Have been to và have gone to là một cặp nhầm kinh điển. “He has been to Japan” nghĩa là anh ấy từng đi Nhật và đã về. “He has gone to Japan” nghĩa là anh ấy đã đi Nhật và bây giờ đang ở bên đó hoặc trên đường đi, không có mặt ở đây. Nếu ai hỏi “Where’s Minh?”, câu trả lời đúng là “He has gone to the bank”, không phải “He has been to the bank”.
Để biến quy tắc thành phản xạ, hãy làm bài tập “hai câu một chuyện” mỗi ngày: viết một câu hiện tại hoàn thành nêu kết quả, ngay sau đó viết một câu quá khứ đơn kể chi tiết. Ví dụ: “I have visited Hoi An twice. The first time, I went there in 2021 with my family.” Đây đúng là cách người bản xứ dùng hai thì phối hợp: mở đầu bằng hiện tại hoàn thành để giới thiệu chủ đề, chuyển sang quá khứ đơn khi đưa ra mốc cụ thể.
Một bài tập khác là đọc lại email công việc của chính mình. Những câu như “I sent you the file yesterday” và “I have sent you the file” đều đúng nhưng mang sắc thái khác: câu đầu nhấn vào thời điểm gửi, câu sau nhấn vào việc file đã nằm trong hộp thư người nhận. Khi tự hỏi “mình muốn người đọc chú ý tới lúc nào hay tới kết quả”, bạn sẽ chọn thì đúng mà không cần nhớ bảng.
Câu hỏi thường gặp
Hiện tại hoàn thành dịch sang tiếng Việt thế nào?
Tiếng Việt thường dùng “đã”, “rồi”, “từng”, “vừa mới”, “được… rồi” tuỳ ngữ cảnh. Vì quá khứ đơn cũng dịch là “đã”, nên đừng chọn thì dựa trên bản dịch tiếng Việt mà hãy xét mốc thời gian và mối liên hệ với hiện tại.
Có thể dùng hiện tại hoàn thành với today, this week không?
Được, khi khoảng thời gian đó chưa kết thúc. Sáng nay đang là buổi sáng thì nói “I have had two coffees this morning”. Nếu đã sang buổi chiều và buổi sáng đã qua, dùng quá khứ đơn sẽ tự nhiên hơn.
Người Mỹ có dùng hiện tại hoàn thành không?
Có, nhưng ít hơn người Anh. Trong văn nói thân mật, người Mỹ hay dùng quá khứ đơn với just, already, yet. Văn viết trang trọng và bài thi vẫn ưu tiên hiện tại hoàn thành, nên người học nên dùng chuẩn này.
“It is the first time I have…” dùng thì gì?
Cấu trúc “This is the first time” đi với hiện tại hoàn thành: “This is the first time I have eaten bánh xèo.” Nếu kể lại chuyện đã qua thì đổi thành “It was the first time I had…” với quá khứ hoàn thành.
Bài thi hay bẫy hai thì này ở dạng nào?
Dạng phổ biến là câu có ago, last, in + năm nhưng đáp án cho sẵn have/has + V3 để gây nhiễu, hoặc câu có since/for mà đáp án mồi là quá khứ đơn. Gạch chân từ chỉ thời gian trước khi chọn đáp án sẽ tránh được phần lớn bẫy.
Câu “I have been working” khác gì “I have worked”?
Thể tiếp diễn nhấn vào quá trình và sự liên tục, thường kèm dấu vết còn thấy được: mệt, bẩn tay. Thể hoàn thành đơn nhấn vào kết quả hoặc số lượng đã đạt: “I have written three emails” chứ không nói “have been writing three emails”.