I once have had a job on a cruise ship ×
I have had a job on a cruise ship before ✓
词典对副词once表示时间时的释义为: at some time in the past,即在过去的某个时间,明确告诉你这是一个过去时间。与现在无关。而副词before的释义为:at an earlier time,即早于现在的某个时间,与现在有关。换句话说,once修饰的动词的动作发生在没有延续到现在的一个时间段中的某个时间点;before修饰的动词的动词发生在延续到现在的一个时间段中的某个时间点。所以前者谓语动词用过去时,后者动词用现在完成时。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!