对过去事实的虚拟中的:would /could / should /might + have done 有什么区别?

问题描述:

对过去事实的虚拟中的:would /could / should /might + have done 有什么区别?
We got a flat tire on our way back home or we ___ home an hour earlier.
A.would have got B.should have got
两个答案是否都对呢?有什么区别呢?

A would have done推测,类似“就会提前一小时到家”,should have done,类似“否则我们一小时前就该到家了”,区别不大