Будьте осторожны при использовании миллисекунд.
Date.getTime () возвращает миллисекунды и выполняет математическую операцию с миллисекундами, чтобы включить
Пример из комментария выше - лучшее решение, которое я нашел до сих пор https://stackoverflow.com/a/11252167/2091095 . Но используйте +1 для его результата, если вы хотите, чтобы все засчитанные дни.
function treatAsUTC(date) {
var result = new Date(date);
result.setMinutes(result.getMinutes() - result.getTimezoneOffset());
return result;
}
function daysBetween(startDate, endDate) {
var millisecondsPerDay = 24 * 60 * 60 * 1000;
return (treatAsUTC(endDate) - treatAsUTC(startDate)) / millisecondsPerDay;
}
var diff = daysBetween($('#first').val(), $('#second').val()) + 1;
Вы можете использовать awk с чем-то вроде этого:
OUT=$(awk '/bc/ {printf "%s##",$0};' file)
Это сохранит вывод в переменной $OUT
.
$ awk '/bc/ {printf "%s##",$0};' file
Он работает, ища вхождения /bc/
, а затем добавляя суффикс ##
. Обратите внимание на использование printf
вместо print
, это потому, что print
всегда добавляет и прерывает строку, а с printf %s##
вы избегайте этого, $0
вернет полную строку.
Ну, простое решение:
grep bc | tr '\n' '#' | sed 's/#/##/g'
Простая замена новой строки с помощью «#» с помощью tr, а затем заменить «#» на два «#» с помощью sed.
grep bc sample.txt | tr "\n" "#" | sed "s/#/##/g"
перевести новые строки в #, перевести 1 # на 2 ##
, вероятно, есть лучший способ, но это прекрасно работает. , .