Мне нужно импортировать текстовые файлы из разных источников, которые будут содержать даты в различных форматах. Учитывая, насколько много запутанных фрагментов данных я обнаружил в тестовых файлах, которые я собрал до сих пор, я решил заставить пользователя ввести их формат даты перед импортом файла, например. MMDDYYYY
или DD.MM.YYYY
т.д.Преобразование формата пользовательских дат с использованием простого введенного пользователем формата
Я не могу ожидать, что эти пользователи понять достаточно ввести Y-m-d
или n/j/Y
форматы, которые были бы достаточно легко разобрать, и я не могу полагаться на «стандарты», как «если используется тире , затем месяц доходит до дня »и т. д., поэтому автоматический разбор очень сильно исключается.
Другая проблема с обычным форматированием даты PHP заключается в том, что я не могу предсказать, будет ли какой-либо формат даты иметь одну или две цифры, и я не знаю, как createFromFormat
будет анализировать это, если я дам им одну цифру, если он ожидает двойную цифру ...
Итак, моя первая мысль заключается в том, чтобы отделить чистые числовые даты от других и заставить пользователя вводить полную 8-значную дату вместе с кодом формата - в противном случае она становится беспорядочной. Но это насколько я дошел до сих пор ...
Я думал о разборе даты и форматировании строки рядом, но это снова вызовет проблемы с одноразрядными номерами, если я не буду осторожен.
Я не нашел ничего, что поможет в моем случае, но, возможно, я беру это из-за неправильного угла - возможно, есть инструмент выбора формата даты Javascript или jQuery, который совместим с форматами даты PHP. ..
Любые предложения по наилучшему подходу для этого?
Вы вынуждали пользователей вводить формат только с помощью DD MM YYYY и комбинаций разделителей? Или они могут решить, как вводится формат? – deacs
Я могу выбрать все, что захочу - пока нет системы для ее обработки. Я просто подумал, что MMDDYYYY является самым широко известным. Но я не могу заставить пользователя узнать разницу между m и n и d и j для формата PHP ...С другой стороны, я только выяснил, что 'createFromFormat' действительно анализирует отдельные цифры правильно, когда он должен ожидать двойные цифры, поэтому я мог бы сам создать матрицу преобразования ... – semmelbroesel
Почему они должны знать Форматы PHP? если вы решите, что они должны ввести свой формат с помощью MM DD YYYY, вы можете разделить части даты (из данных) на php и поместить их обратно вместе так, как вы хотите. потому что вы знаете, какая часть их данных - год, месяц и т. д. – deacs