Я хочу преобразовать дату в метку времени, мой ввод 26-02-2012
. я использовал
new Date(myDate).getTime();
Это говорит NaN .. Кто-нибудь может сказать, как преобразовать это?
javascript
date
time
selladurai
источник
источник
Date(myDate).getTime()
(то, что вы пометили как код), или слово «новый» до него означало быть частью кода? Чем больше усилий вы приложите, тем лучше будут ваши ответы.Ответы:
Обновить:
ДЕМО (протестировано в Chrome, FF, Opera, IE и Safari).
источник
NaN
. В Safari вы должны использовать другой возможный конструкторnew Date(year, month, day);
, относящийся к этому примеру:new Date(myDate[2], myDate[1], myDate[0]);
YYYY-MM-DD
), который гарантированно понимаетсяDate()
и, вообще говоря, является наиболее совместимым форматом для строк даты.new Date(newDate).getTime()
создаст временную метку в миллисекундах.Math.floor(new Date(newDate).getTime() / 1000)
Попробуйте эту функцию, она использует метод Date.parse () и не требует никакой специальной логики:
источник
источник
этот переработанный код сделает это
это работает во всех современных браузерах, кроме ie8-
источник
Здесь есть две проблемы. Во-первых, вы можете вызывать getTime только для экземпляра даты. Вам нужно заключить новую дату в скобки или присвоить ее переменной.
Во-вторых, вам нужно передать строку в правильном формате.
Рабочий пример:
источник
Вам нужно просто поменять цифру даты и изменить
-
на,
:В твоем случае:
PS Локализация в Великобритании здесь не имеет значения.
источник
Number
строк, начинающихся с a0
, проблематично на некоторых движках - используйтеparseInt
и укажите radix.источник
Чтобы преобразовать дату (ISO) в метку времени Unix , у меня была метка времени на 3 символа длиннее, чем нужно, поэтому мой год был где-то около 50 тыс.
Я должен был разделить это на 1000:
new Date('2012-02-26').getTime() / 1000
источник
Для тех, кто хочет иметь удобочитаемую метку времени в формате,
yyyymmddHHMMSS
Пример использования: расширение файла резервной копии.
/my/path/my.file.js.20190220
источник
Если вы пришли сюда в поисках текущей метки времени
TLDR:
источник
Ваша строка не в формате , что
Date
объект указан для обработки . Вам придется проанализировать его самостоятельно, использовать библиотеку анализа даты, такую как MomentJS или более старую (и пока не поддерживается, насколько я могу судить) DateJS , или преобразовать ее в правильный формат (например,2012-02-29
), прежде чем спрашиватьDate
разобрать ее. ,Почему вы получаете
NaN
: Когда вы проситеnew Date(...)
обработать недопустимую строку, он возвращаетDate
объект, который имеет недопустимую дату (new Date("29-02-2012").toString()
возвращает"Invalid date"
). ВызовgetTime()
объекта даты в этом состоянии возвращаетсяNaN
.источник
Date
объект (который не имеет ничего общего с DOM).источник
Ответы были предоставлены другими разработчиками, но по-моему, вы можете сделать это на лету, не создавая пользовательскую функцию следующим образом:
источник